車輪について

多くの人がすでに車輪について聞いています。 私はそれらについて詳しくは語りません-habrには良い記事がありました。 開発者のマシンでホイールを使用する1つ(明白な)方法をステップごとに説明します。



numpyやscipyなどのパッケージをpipでインストールした人は誰でも時間がかかることを知っています。コンパイルには10分、20、30時間かかることがあります。 コンパイル環境は構成できます(少なくとも、macとlinuxの場合、それほど難しくはありません)が、すべてのvirtualenvにそのような依存関係をインストールすることはまだ楽しみです。 もちろん、お茶を飲むこともできます。 または、仮想の1つを使用しないか、1つを使用します。



ホイールは、長い設置の問題を解決するのに役立ちます。 本質はこれです:パッケージは一度だけコンパイル/コンパイルされ、その後、コンパイルされたファイルでアーカイブを解凍することによりインストールが実行されます。 したがって、次の手順で:



1.ホイールが置かれるフォルダーへのパスを~/.pip/pip.conf



書き込みます。



 [global] wheel-dir=/Users/kmike/.wheels find-links=/Users/kmike/.wheels ;  /Users/kmike/.wheels   - pip    
      
      





~/.pip/pip.conf



がない場合は、作成できます。 Windowsでは、正しいファイルは異なります- %HOME%\pip\pip.ini







2.ホイールの組み立てに必要なホイールパッケージをインストールします(ホイールをインストールする必要はなくなりました)。



 $ pip install wheel
      
      





3.頻繁に使用される(まれに使用される)すべての依存関係のホイールを収集します。たとえば、



 $ pip wheel numpy lxml Pillow
      
      





このコマンドは仮想からでも実行できますが、少なくとも違いはありません。 ホイールは、pip.confで指定されたフォルダーに展開されます。



4. pip.confのおかげで、「pip install foo」コマンドは、正しいパッケージバージョンで指定されたpythonバージョンのホイールが既に終了しているかどうかを確認します。 その場合、インストールはほぼ瞬時に行われます。 これで、それぞれに仮想チャートを作成し、scipy / numpyなどを配置できます。



TL; DRパッケージをインストールしますか-「pip install foo」の代わりに、「pip wheel foo; pip install foo。これにより、pip install fooコマンドが即座に実行されます。 うん、キャップ!



備考:



1. 2つではなく1つのコマンドを記述するために、この動作をpipでデフォルトにする(最初にホイールをキャッシュしてから、パッケージをインストールする)ことは可能かと思います。

2. numpyを使用した例-まあまあ numpy == 1.8.1 for OS Xの場合、pypiにはすぐにホイールがあります。 ストックPythonを使用する場合(たとえば、brewでコンパイルしない場合)、ポピーの下の「pip install numpy == 1.8.1」は非常に高速に動作するはずです-コンパイルはできません。

3.これにはすべて、多少新鮮なピップが必要です。

4. devpiメソッド(記事の冒頭のリンクで説明)と比較すると、オプションは少なくなりますが、すべてがより簡単です-ファイルのあるフォルダー、構成内の3行、サーバーなし。

5. pip install fooはすでに実行されていると想定されています。 ローカルホイールキャッシュは、scipyをビルドする際のFortranコンパイラの欠如の問題を解決しません。

6.「pip wheel numpy scipy」が機能しない場合があります。 scipyをコンパイルするには、numpyがインストールされている必要があります。 正しいシーケンスは「ピップホイールnumpy; pip install numpy; ピップホイールシシー。」

7. pipがインターネットをまったく閲覧せず、ローカルフォルダーからのみすべてをインストールするように、pip installコマンドに--no-indexオプションを指定できます。

8.純粋なpythonパッケージの場合でも、ホイールの取り付けは著しく高速になります。

9.すべての情報はpip ドキュメントにあります



All Articles