19

インストールが失敗したときにファイルを再度ダウンロードする必要がないようにeasy_installを構成する方法はありますか?

4

2 に答える 2

13

これは、pipを使用した私のソリューションで、バイナリパッケージのインストールも管理し、LinuxとWindowsの両方で使用できます。また、要求に応じて、PyPi からのダウンロードを最小限に制限し、追加のボーナスとして、Linux では、通常はコンパイルが必要なパッケージの繰り返しインストールを数分の 1 秒に高速化できます。

セットアップにはいくつかの手順が必要ですが、実行する価値はあると思います。

pip 設定ファイルを作成する

pip 構成ファイルを作成します (Linux の場合: ~/.pip/pip.conf、Windows の場合 %HOME%\pip\pip.ini)

私のものにはこのコンテンツがあります:

[global]
download-cache = /home/javl/.pip/cache
find-links = /home/javl/.pip/packages

[install]
use-wheel = yes

[wheel]
wheel-dir = /home/javl/.pip/packages

dircacheの入力 - 自動的に実行されます

cacheディレクトリは毎回pypiからダウンロードされたデータのキャッシュされたバージョンを取得し、pipはpypiからパッケージを取得しようとします。そこにアクセスするのは簡単ですが (特別な注意は必要ありません)、pip の観点からは、これらはパッケージではなく PyPi からダウンロードされた単なるキャッシュ データであるため、 option を使用する場合--no-indexは機能しません。

pip downloadpackagesディレクトリに移入する

packagesdir は、実際のパッケージ ファイルを配置する場所です。たとえば、私のお気に入りのパッケージplacの場合、次のようにします。

$ pip download --dest ~/.pip/packages plac

plac パッケージ ファイルはそのディレクトリに表示されます。-r requirements.txtfile を使用して、一度に複数のパッケージに対してこれを行うこともできます。

これらのパッケージは$ pip install --no-index <something>.

Linux で同じパッケージを繰り返しコンパイルしないようにする

たとえばlxml、パッケージにはコンパイルが必要で、ダウンロードとコンパイルには 45 秒から数分かかる場合があります。wheel 形式を使用すると、ここで多くのことを節約できます。

wheelまだツールを持っていない場合は、ツールをインストールします。

$ pip install wheel

wheel を作成しますlxml(過去にインストールできたと仮定しますlxml- システムにいくつかのライブラリをインストールする必要があります):

$ pip wheel lxml

これはダウンロード、コンパイルを超えますが、最終的には lxmlwhlファイルがディレクトリにありpackagesます。

それ以来

$ pip install lxml

またはさらに高速

$ pip install --no-index lxml

wheel 形式のパッケージを使用するため、数分の 1 秒かかります。

Window setup exe パッケージから wheel パッケージを準備する

(注:これはLinuxマシンでも準備できます。コンパイルはなく、exeファイルからwhl.

  1. pypi からパッケージの exe 形式をダウンロードします。

    $ wget https://pypi.python.org/packages/2.7/l/lxml/lxml-3.2.3.win32-py2.7.exe#md5=14ab978b7f0a3382719b65a1ca938d33 $ dir lxml-3.2.3.win32-py2.7 。EXE

  2. に変換しますwhl

    $ wheel convert lxml-3.2.3.win32-py2.7.exe $ dir lxml-3.2.3.win32-py2.7.exe lxml-3.2.3-cp27-none-win32.whl

  3. 試して:

    $ pip インストール lxml

また

$ pip install --no-index lxml

非常に迅速になります。

wheel convertこれは、egg 形式のパッケージに対してまったく同じ変換を行うことができることに注意してください。

あなたのディレクトリeasy_installsetup.py install再利用しましょうpackages

easy_installダウンロードキャッシュを提供して$ python setup.py installいないようですが、packagesディレクトリにあるパッケージを使用できます。

これを行うには、次の 2 つのツールの構成ファイルを編集します。

Linux の場合:$HOME/.pydistutils.cfg

Windows の場合:%HOME%\pydistutils.cfg

私の場合、私はここにいます/home/javl/.pydistutils.cfg:

[easy_install]
find_links = /home/javl/.pip/packages

pip installこの構成は、pip がパッケージのインストールを試み、他のパッケージへの依存関係を宣言するときに、呼び出しの一部のケースでも役立つ場合があります。このタスクsetup.pyの呼び出しを委譲するため、設定なしで.pydistutils.cfgPyPi からファイルをダウンロードします。

残念ながら、この場合、ホイール形式はサポートされていません (私の知る限り)。

于 2013-08-29T20:51:17.323 に答える