Pythonvenvを別のPCに複製できません
既存のvenvを別のPCに複製したいのですが、単にコピー&ペーストが機能しません。venvをコピーして2番目のマシンに貼り付け、実行すると
ピップリスト
インストールされている依存関係としてpipとsetup_toolsのみがリストされます。パッケージのクローンを作成する別の方法を試しました。2番目のマシンで新しいvenvを作成し、最初のvenvのすべてのファイルをその新しいvenvにコピーし、新しいvenv内の同じ名前の既存のファイルをスキップしました。今、私が走ると
ピップリスト
すべての依存関係が表示されますが、jupyterノートブックを次のように起動しようとすると
jupyterノートブック
次のエラーが発生します。
ランチャーの致命的なエラー: '"f:\ path \ to \ first_venv \ on_first_machine \ scripts \ python.exe" "C:\ path \ to \ new_venv \ on_the_second_machine \ Scripts \ jupyter.exe"ノートブック'を使用してプロセスを作成できません:システムは、指定されたファイルを見つけることができません。
私は物事を機能させることを知りません。助けてください!
編集
問題は、2台目のマシンにインターネット接続がないことです。実際には、いくつかのセキュリティプロトコルが適用されたリモートマシンであり、インターネットに接続されていないことはセキュリティの一部です。私の悪い: '(
回答
あるマシンから別のマシンにvenvをコピーして貼り付けることはできません。これは、それらのスクリプトがシステムの場所を参照している可能性があるためです。(同じことは、マシン内でvenvを移動しようとすることを意味します。)
代わりに、新しいマシンで環境を再作成します。
- 古いマシンで
pip freeze -l > packages.txtは、virtualenvで実行します。 packages.txt新しいマシンに移動します。- 新しいマシンに新しいvirtualenvを作成し、入力します。
- txtファイルからパッケージをインストールします
pip install -r packages.txt。
編集: 2台目のマシンでインターネットにアクセスできない場合は、次の手順で手順2から続行できます。
pip wheel -w wheels -r packages.txt最初のマシンのvenvで実行します。これにより*.whl、必要なすべてのパッケージのパッケージがダウンロードおよびビルドされます。これは、両方のマシンのOSとアーキテクチャが類似していることを前提としていることに注意してください。- ホイールファイルを新しいマシンにコピーします。
- 新しいマシンに新しいvirtualenvを作成し、入力します。
- 新しいvirtualenvのホイールからパッケージをインストールします
pip install *.whl。
マシン間で仮想環境をコピーしないでください。正しい方法はpip freeze、他のマシンを使用して環境にインストールされている依存関係をエクスポートし、新しい仮想環境を作成することです。
# One the first machine
pip freeze > requirements.txt
# Copy requirements.txt to the other machine, or store in a source repository
# Then install the requirements in the new virtual environment
pip install -r requirements.txt