別のマシンにオフラインでインストールするために、python パッケージと pypi からの依存関係をダウンロードする最良の方法は何ですか? pip または easy_install でこれを行う簡単な方法はありますか? インターネットに接続されていない FreeBSD ボックスに requests ライブラリをインストールしようとしています。
12 に答える
インターネットにアクセスできるシステム上
pipdownload
コマンドを使用すると、パッケージをインストールせずにダウンロードできます。
pip download -r requirements.txt
(以前のバージョンの pip では、これは綴られていpip install --download -r requirements.txt
ました。)
インターネットにアクセスできないシステムで
次に、使用できます
pip install --no-index --find-links /path/to/download/dir/ -r requirements.txt
ネットワークにアクセスせずに、ダウンロードしたモジュールをインストールします。
パッケージが PYPI 上にある場合は、パッケージとその依存関係をローカル ディレクトリにダウンロードします。例えば
$ mkdir /pypi && cd /pypi $ ls -la -rw-r--r-- 1 パベル スタッフ 237954 4 月 19 日 11:31 Flask-WTF-0.6.tar.gz -rw-r--r-- パベル スタッフ 1 人 389741 2 月 22 日 17:10 Jinja2-2.6.tar.gz -rw-r--r-- 1 パベル スタッフ 70305 4 月 11 日 00:28 MySQL-python-1.2.3.tar.gz -rw-r--r-- 1 パベル スタッフ 2597214 4 月 10 日 18:26 SQLAlchemy-0.7.6.tar.gz -rw-r--r-- パベル スタッフ 1 人 1108056 2 月 22 日 17:10 Werkzeug-0.8.2.tar.gz -rw-r--r-- 1 パベル スタッフ 488207 4 月 10 日 18:26 boto-2.3.0.tar.gz -rw-r--r-- パベル スタッフ 1 人 490192 4 月 16 日 12:00 フラスコ-0.9-dev-2a6c80a.tar.gz
一部のパッケージは、同様の tarball に手動でアーカイブする必要がある場合があります。何かのより新しい (安定性が低い) バージョンが必要な場合によく使用します。一部のパッケージは PYPI にないため、同じことが当てはまります。
に適切に形成された Python アプリケーションがあるとします~/src/myapp
。ディレクトリにあるものを 1 つ以上記載したリストがあり~/src/myapp/setup.py
ます。そのようです:install_requires
/pypi
install_requires=[
'boto',
'Flask',
'Werkzeug',
# and so on
アプリをハッキングしながら、必要なすべての依存関係でアプリを実行できるようにしたい場合は、次のようにします。
$ cd ~/src/myapp $ python setup.py 開発 --always-unzip --allow-hosts=なし --find-links=/pypi
このようにして、アプリはソース ディレクトリから直接実行されます。何かをハッキングしてから、何も再構築せずにアプリを再実行できます。
アプリとその依存関係を現在の Python 環境にインストールする場合は、次のようにします。
$ cd ~/src/myapp $ easy_install --always-unzip --allow-hosts=なし --find-links=/pypi .
どちらの場合も、1 つ以上の依存関係が/pypi
ディレクトリに存在しない場合、ビルドは失敗します。インターネットから見つからないものを無差別にインストールしようとはしません。
グローバルな Python 環境を汚染しないように、アクティブな仮想環境setup.py develop ...
内でとを呼び出すことを強くお勧めします。それは(virtualenvである)ほとんど行く方法です。グローバルな Python 環境には何もインストールしないでください。easy_install ...
easy_install
アプリを構築したマシンが、展開先のマシンと同じアーキテクチャを持っている場合は、すべてを -edした仮想環境ディレクトリ全体を単純に tarball できます。ただし、tarball を実行する直前に、仮想環境のディレクトリを再配置可能にする必要があります ( --relocatableオプションを参照)。注:宛先マシンには、同じバージョンの Python がインストールされている必要があります。また、アプリに含まれている可能性のある C ベースの依存関係もそこにプリインストールされている必要があります (たとえば、 PILに依存している場合は、libpng、libjpeg などをプリインストールする必要があります)。 .
tarballをダウンロードし、FreeBSD マシンに転送して展開し、その後実行python setup.py install
すれば完了です!
編集: 追加するために、今すぐ pip で tarball をインストールすることもできます。
Pip 8.1.2 の場合pip download -r requ.txt
、パッケージをローカル マシンにダウンロードするために使用できます。
Pypi から wheel ファイル (dlb-0.5.0-py3-none-any.whl など) をダウンロードし、
pip install dlb-0.5.0-py3-none-any.whl