3

裸のパッケージがインストールされている任意のマシンで実行されるスタンドアロンの pip パッケージを作成する最良の方法は何ですか?

たとえば、ペリカンをパッケージ化して、python がインストールされているすべてのコンピューターで実行できるようにしたいとします(すべての依存関係が純粋な python であると仮定します)。

4

2 に答える 2

7

私の考えでは、バンドルpip install --no-installトリックの 2 つの解決策があります。

使用bundles:

$ virtualenv venv
$ venv/bin/pip install pelican
$ venv/bin/pip freeze > all-packages.txt
$ venv/bin/pip bundle allpackages.pybundle -r all-packages.txt

(ペリカンが必要とするものだけを含むvenvクリーンな環境を作るために作成しました)all-packages.txt

そして、配布する必要があるだけで、次allpackages.pybundleのことを行う必要があるパッケージが必要な人はいます。

$ venv/bin/pip install allpackages.pybundle -r all-packages.txt

使用pip install --no-install:

pip はすべてのパッケージをディレクトリにダウンロードでき、それらのパッケージを配布できます。all-packages.txt配布する必要があるすべてのパッケージが含まれていると仮定すると、 --no-installwith--download-dirオプションを使用できます。

$ mkdir tarballs
$ venv/bin/pip install --no-install --download-dir=tarballs -r all-packages.txt

最後のトリックを使用し、pip を使用してこれらのパッケージをインストールする場合:

$ venv/bin/pip install --no-deps --no-index tarballs/*

no-depspip は wnated パッケージをインストールする前に依存関係を探すため、このオプションが必要です。--no-index以前は、何かを見つけるために pip が PyPI にアクセスする必要がなく、そのステップでインターネット接続さえ必要ないことを示すために使用しました。

于 2012-12-07T00:06:41.413 に答える