共有Pythonパッケージを複数のVirtualEnvに追加します
-
02-10-2019 - |
質問
現在のPythonワークフロー
私は持っています ピップ, 分配, virtualenv, 、 と virtualenvwrapper Python 2.7のサイトパッケージにインストールされています(a Mac OS XにFramework Pythonインストール)。私の中で ~/.bash_profile
私は線を持っています
export PIP_DOWNLOAD_CACHE=$HOME/.pip_download_cache
これにより、次のようにワークフローが得られます。
$ mkvirtualenv pip-test
$ pip install nose # downloaded and installed from PyPi
$ pip install mock # downloaded and installed from PyPi
$ mkvirtualenv pip-test2
$ pip install nose # installed from pip's download cache
$ pip install mock # installed from pip's download cache
質問
以前に別のVirtualenVにインストールされていたパッケージをダウンロードしていないため、このワークフローは時間と帯域幅を節約します。ただし、各パッケージが各virtualenvにインストールされるため、ディスクスペースを節約しません。したがって、私は疑問に思っています:
- 質問1 複数のVirtualEnvsを参照することでディスクスペースを保存できるようにするこのワークフローの変更はありますか? いいえ Python 2.7のサイトパッケージにインストールされていますか?
使ってみました add2virtualenv これはVirtualEnvWrapperの一部です。これは「現在活動的なVirtualenvのPythonパスに指定されたディレクトリを追加する」ですが、にある実行可能ファイルを追加しません。 virtualenv/bin
ディレクトリ。したがって、以下は失敗します。
$ mkvirtualenv pip-test3
$ add2virtualenv ~/.virtualenvs/pip-test/lib/python2.7/site-packages/nose/
$ nosetests # Fails since missing ~/.virtualenvs/pip-test3/bin/nosetests
- 質問2 道について何かが足りないのですか
add2virtualenv
作品? - 質問#1言い換えられます 複数のVirtualEnvsが1つのPythonパッケージを参照できるようにするAdd2VirtualEnvよりも優れた方法はありますか? いいえ Python 2.7のサイトパッケージにインストールされていますか?
- 質問#3 共有Pythonパッケージを複数のVirtualEnvにインストールする方法がある場合、各VirtualEnvに個別にPythonパッケージをインストールするのと比較して、パフォーマンスペナルティはありませんか?
- 質問#4 ディスクスペースの節約をあきらめて、現在のワークフローに固執する必要がありますか?
解決
組み込みシステムで開発を行っていない限り、この方法でディスクスペースを追いかけることは常に逆効果であることがわかります。この実現に到達するのに長い時間がかかりました。なぜなら、私は非常に大きなハードドライブのサイズが数メガバイトだったときに育ち、KでRAMが測定されたからです。プロジェクトを直交すること(プロジェクトの外側のどこかでシステムのディレクトリを削除し、Pythonパッケージをまだ削除できます)は、発達に忙しい場合は、ディスクスペースの利点を常にはるかに上回っているようです。私の経験では、とにかく気づかない。
だから私はそれが私自身の経験から私が提供している教訓だと思います:あなたが失ったディスクスペースに気付くことはありませんが、あなたはあなたが 意思 ディスク上の1か所でディレクトリをクリーンアップしようとすると、開発中のプロジェクトがどこか別の場所にある場合に注意してください。