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 ドキュメントにあります 。