237

別のマシンにオフラインでインストールするために、python パッケージと pypi からの依存関係をダウンロードする最良の方法は何ですか? pip または easy_install でこれを行う簡単な方法はありますか? インターネットに接続されていない FreeBSD ボックスに requests ライブラリをインストールしようとしています。

4

12 に答える 12

395

インターネットにアクセスできるシステム上

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

ネットワークにアクセスせずに、ダウンロードしたモジュールをインストールします。

于 2013-01-21T20:55:53.190 に答える
84

パッケージが 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 などをプリインストールする必要があります)。 .

于 2012-06-18T22:32:55.500 に答える
7

tarballをダウンロードし、FreeBSD マシンに転送して展開し、その後実行python setup.py installすれば完了です!

編集: 追加するために、今すぐ pip で tarball をインストールすることもできます。

于 2012-06-18T21:54:36.610 に答える
3

Pip 8.1.2 の場合pip download -r requ.txt、パッケージをローカル マシンにダウンロードするために使用できます。

于 2016-11-15T07:08:15.793 に答える
1

Pypi から wheel ファイル (dlb-0.5.0-py3-none-any.whl など) をダウンロードし、

pip install dlb-0.5.0-py3-none-any.whl
于 2020-08-21T08:24:47.533 に答える