インストールが失敗したときにファイルを再度ダウンロードする必要がないようにeasy_installを構成する方法はありますか?
2 に答える
これは、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 download
packages
ディレクトリに移入する
packages
dir は、実際のパッケージ ファイルを配置する場所です。たとえば、私のお気に入りのパッケージplac
の場合、次のようにします。
$ pip download --dest ~/.pip/packages plac
plac パッケージ ファイルはそのディレクトリに表示されます。-r requirements.txt
file を使用して、一度に複数のパッケージに対してこれを行うこともできます。
これらのパッケージは$ 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
.
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
に変換します
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
試して:
$ pip インストール lxml
また
$ pip install --no-index lxml
非常に迅速になります。
wheel convert
これは、egg 形式のパッケージに対してまったく同じ変換を行うことができることに注意してください。
あなたのディレクトリeasy_install
をsetup.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.cfg
PyPi からファイルをダウンロードします。
残念ながら、この場合、ホイール形式はサポートされていません (私の知る限り)。