回答:
パッケージがPYPIにある場合は、パッケージとその依存関係をローカルディレクトリにダウンロードします。例えば
$ mkdir / pypi && cd / pypi $ ls -la -rw-r--r-- pavelスタッフ1人237954 Apr 19 11:31 Flask-WTF-0.6.tar.gz -rw-r--r-- pavelスタッフ1人389741 2月22日17:10 Jinja2-2.6.tar.gz -rw-r--r-- 1つのpavelスタッフ70305 Apr 11 00:28 MySQL-python-1.2.3.tar.gz -rw-r--r-- 1つのpavelスタッフ2597214 4月10日18:26 SQLAlchemy-0.7.6.tar.gz -rw-r--r-- 1つのpavelスタッフ1108056 2月22日17:10 Werkzeug-0.8.2.tar.gz -rw-r--r-- pavelスタッフ1名488207 4月10日18:26 boto-2.3.0.tar.gz -rw-r--r-- pavelスタッフ1名490192 4月16日12:00フラスコ-0.9-dev-2a6c80a.tar.gz
一部のパッケージは、似たようなtarballに手動でアーカイブする必要がある場合があります。何かのより最近の(安定性の低い)バージョンが必要な場合、私はそれをよく行います。一部のパッケージはPYPIに含まれていないため、同じことがパッケージに適用されます。
で適切に形成されたPythonアプリケーションがあるとし~/src/myapp
ます。~/src/myapp/setup.py
必要がありますinstall_requires
あなたはあなたの中に持って一つ以上のものの言及リスト/pypi
のディレクトリを。そのようです:
install_requires=[
'boto',
'Flask',
'Werkzeug',
# and so on
アプリをハッキングしながら、必要なすべての依存関係を使用してアプリを実行できるようにするには、次のようにします。
$ cd〜/ src / myapp $ python setup.py develop --always-unzip --allow-hosts = None --find-links = / pypi
このようにして、アプリはソースディレクトリから直接実行されます。物事をハックして、何も再構築せずにアプリを再実行できます。
アプリとその依存関係を現在のPython環境にインストールする場合は、次のようにします。
$ cd〜/ src / myapp $ easy_install --always-unzip --allow-hosts = None --find-links = / pypi。
どちらの場合も、1つ以上の依存関係が/pypi
ディレクトリに存在しない場合、ビルドは失敗します。インターネットから不足しているものを無差別にインストールしようとはしません。
私は非常に起動することをお勧めしますsetup.py develop ...
とeasy_install ...
、アクティブ内の仮想環境グローバルなPython環境を汚染しないようします。これは(virtualenvです)ほとんどの方法です。グローバルPython環境には何もインストールしないでください。
アプリをビルドしたマシンのアーキテクチャが、アプリをデプロイするマシンと同じである場合は、仮想環境ディレクトリ全体をtarballして、すべてを展開できeasy_install
ます。ただし、tarballする直前に、仮想環境ディレクトリを再配置可能にする必要があります(--relocatableオプションを参照)。注:宛先マシンには同じバージョンのPythonがインストールされている必要があります。また、アプリにCベースの依存関係もプレインストールされている必要があります(たとえば、PILに依存している場合は、libpng、libjpegなどをプレインストールする必要があります)。 。
--allow-hosts=None
スイッチを使用できます--no-index
pip download
コマンドを使用すると、パッケージをインストールせずにダウンロードできます。
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
して、ネットワークにアクセスせずに、ダウンロードしたsdistをインストールできます。
--find-links file:/path/to/some/dir/
そしてあなたは同じバージョンのpipでダウンロードしてインストールすべきです-そうでなければ失敗するかもしれません
python libsとその依存関係をオフラインでインストールする場合は、同じos、ネットワークに接続され、pythonがインストールされているマシンで次の手順を実行してください。
1)requirements.txt
同様の内容のファイルを作成します(注-これらはダウンロードしたいライブラリです):
Flask==0.12
requests>=2.7.0
scikit-learn==0.19.1
numpy==1.14.3
pandas==0.22.0
要件ファイルを作成するための1つのオプションは、を使用することpip freeze > requirements.txt
です。これにより、環境内のすべてのライブラリがリストされます。次に、requirements.txt
不要なものに移動して削除できます。
2)mkdir wheelhouse && pip download -r requirements.txt -d wheelhouse
libとその依存関係をディレクトリにダウンロードするコマンドを実行しますwheelhouse
3)requirements.txtをwheelhouse
ディレクトリにコピーします
4)wheelhouseをwheelhouse.tar.gz
withにアーカイブしますtar -zcf wheelhouse.tar.gz wheelhouse
次にwheelhouse.tar.gz
、ターゲットマシンにアップロードします。
1)実行tar -zxf wheelhouse.tar.gz
してファイルを抽出します
2)実行pip install -r wheelhouse/requirements.txt --no-index --find-links wheelhouse
してライブラリとその依存関係をインストールします
pip install
が最後に言うと、それは言う:エラー:要件を満たすバージョンが見つかりませんでした..`
オフラインpython。これを行うにはvirtualenv(分離されたPython環境)を使用します
1)pipを使用してvirtualenvをオンラインでインストールします。
pip install virtualenv --user
またはwhlでオフライン:このリンクに移動し、最新バージョン(.whlまたはtar.gz)をダウンロードして、次のコマンドでインストールします。
pip install virtualenv-15.1.0-py2.py3-none-any.whl --user
を使用--user
すると、を使用する必要はありませんsudo pip…
。
2)virtualenvを使用する
オンラインマシンでターミナルのあるディレクトリを選択し、cd
次のコードを実行します。
python -m virtualenv myenv
cd myenv
source bin/activate
pip install Flask
すべてのパッケージをインストールした後requirements.txt
、virtualenvがアクティブな間にを生成する必要があります。
pip freeze > requirements.txt
新しいターミナルを開き、のような別の環境を作成しますmyenv2
。
python -m virtualenv myenv2
cd myenv2
source bin/activate
cd -
ls
これで、requirements.txt
and tranferred_packages
フォルダーがあるオフラインフォルダーに移動できます。以下のコードでパッケージをダウンロードし、すべてをtranferred_packages
フォルダーに配置します。
pip download -r requirements.txt
オフラインフォルダーをオフラインコンピューターに移動し、
python -m virtualenv myenv2
cd myenv2
source bin/activate
cd -
cd offline
pip install --no-index --find-links="./tranferred_packages" -r requirements.txt
オフラインフォルダの内容[requirements.txt、tranferred_packages {Flask-0.10.1.tar.gz、...}]
あなたのパッケージのリストをチェックしてください
pip list
注:2017年なので、python 3を使用することをお勧めします。このコマンドでpython 3 virtualenvを作成できます。
virtualenv -p python3 envname
tarballをダウンロードし、それをFreeBSDマシンに転送して解凍し、その後実行python setup.py install
すれば完了です!
編集:それに追加するだけで、今すぐpipでtarballをインストールすることもできます。
プロセスを段階的に見てみましょう:
$ mkdir packages
$ cd packages
コマンドプロンプトまたはシェルを開き、次のコマンドを実行します。
あなたが望むパッケージが tensorflow
$ pip download tensorflow
次に、ターゲットコンピューターでpackages
フォルダーをコピーし、次のコマンドを適用します。
$ cd packages
$ pip install 'tensorflow-xyz.whl' --no-index --find-links '.'
tensorflow-xyz.whl
は、必要なパッケージの元の名前に置き換える必要があることに注意してください。
wheel
コンパイルされたパッケージの使用。
束ねます:
$ tempdir=$(mktemp -d /tmp/wheelhouse-XXXXX)
$ pip wheel -r requirements.txt --wheel-dir=$tempdir
$ cwd=`pwd`
$ (cd "$tempdir"; tar -cjvf "$cwd/bundled.tar.bz2" *)
tarballをコピーしてインストールします。
$ tempdir=$(mktemp -d /tmp/wheelhouse-XXXXX)
$ (cd $tempdir; tar -xvf /path/to/bundled.tar.bz2)
$ pip install --force-reinstall --ignore-installed --upgrade --no-index --no-deps $tempdir/*
wheel
バイナリパッケージはマシン間ではないことに注意してください。
もっと参考 ここ:https : //pip.pypa.io/en/stable/user_guide/#installation-bundles
同様の問題がありました。そして、私はそれを同じ方法でインストールさせなければなりませんでした、我々はpypiから行います。
私は次のことをしました:
インターネットにアクセスできるマシン内のすべてのパッケージを格納するディレクトリを作成します。
mkdir -p /path/to/packages/
すべてのパッケージをパスにダウンロードします
pip download -r requirements.txt -d /path/to/packages
Eg:- ls /root/wheelhouse/ # **/root/wheelhouse** is my **/path/to/packages/**
total 4524
-rw-r--r--. 1 root root 16667 May 23 2017 incremental-17.5.0-py2.py3-none-any.whl
-rw-r--r--. 1 root root 34713 Sep 1 10:21 attrs-18.2.0-py2.py3-none-any.whl
-rw-r--r--. 1 root root 3088398 Oct 15 14:41 Twisted-18.9.0.tar.bz2
-rw-r--r--. 1 root root 133356 Jan 28 15:58 chardet-3.0.4-py2.py3-none-any.whl
-rw-r--r--. 1 root root 154154 Jan 28 15:58 certifi-2018.11.29-py2.py3-none-any.whl
-rw-r--r--. 1 root root 57987 Jan 28 15:58 requests-2.21.0-py2.py3-none-any.whl
-rw-r--r--. 1 root root 58594 Jan 28 15:58 idna-2.8-py2.py3-none-any.whl
-rw-r--r--. 1 root root 118086 Jan 28 15:59 urllib3-1.24.1-py2.py3-none-any.whl
-rw-r--r--. 1 root root 47229 Jan 28 15:59 tqdm-4.30.0-py2.py3-none-any.whl
-rw-r--r--. 1 root root 7922 Jan 28 16:13 constantly-15.1.0-py2.py3-none-any.whl
-rw-r--r--. 1 root root 164706 Jan 28 16:14 zope.interface-4.6.0-cp27-cp27mu-manylinux1_x86_64.whl
-rw-r--r--. 1 root root 573841 Jan 28 16:14 setuptools-40.7.0-py2.py3-none-any.whl
-rw-r--r--. 1 root root 37638 Jan 28 16:15 Automat-0.7.0-py2.py3-none-any.whl
-rw-r--r--. 1 root root 37905 Jan 28 16:15 hyperlink-18.0.0-py2.py3-none-any.whl
-rw-r--r--. 1 root root 52311 Jan 28 16:15 PyHamcrest-1.9.0-py2.py3-none-any.whl
-rw-r--r--. 1 root root 10586 Jan 28 16:15 six-1.12.0-py2.py3-none-any.whl
パッケージディレクトリをtarし、インターネットにアクセスできないマシンにコピーします。次に、
cd /path/to/packages/
tar -cvzf packages.tar.gz . # not the . (dot) at the end
packages.tar.gzを、インターネットにアクセスできない宛先マシンにコピーします。
インターネットにアクセスできないマシンで、以下を実行します(taredパッケージを現在のマシンの/ path / to / package /にコピーしたと仮定)
cd /path/to/packages/
tar -xvzf packages.tar.gz
mkdir -p $HOME/.config/pip/
vi $HOME/.config/pip/pip.conf
以下の内容を貼り付けて保存します。
[global]
timeout = 10
find-links = file:///path/to/package/
no-cache-dir = true
no-index = true
最後に、virtualenv
パッケージをインストールするための何らかの形式を使用することをお勧めします。
virtualenv -p python2 venv # use python3, if you are on python3
source ./venv/bin/activate
pip install <package>
ディレクトリ/ path / to / package /にあるすべてのモジュールをダウンロードできるはずです。
注:オプションを追加したり、モジュールのインストール方法を変更したりできなかったので、私はこれを実行しました。そうでなければ私はやっただろう
pip install --no-index --find-links /path/to/download/dir/ -r requirements.txt