9

現在の Python ワークフロー

pipdistributedvirtualenv、およびvirtualenvwrapperをPython 2.7 サイト パッケージ ( Mac OS X にインストールされたフレームワーク 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 Python 2.7 サイト パッケージにインストールされていない1 つの Python パッケージを複数の virtualenv が参照するようにすることで、ディスク領域を節約できるこのワークフローへの変更はありますか?

virtualenvwrapper の一部であるadd2virtualenvを使用してみました。これにより、「指定されたディレクトリが現在アクティブな 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 言い換え私の Python 2.7 サイト パッケージにインストールされていない1 つの Python パッケージを複数の virtualenv が参照できるようにする add2virtualenv よりも優れた方法はありますか?
  • 質問 3共有 Python パッケージを複数の virtualenv にインストールする方法がある場合、Python パッケージを各 virtualenv に個別にインストールする場合と比較して、パフォーマンスの低下はありませんか?
  • 質問 #4ディスク領域の節約をあきらめて、現在のワークフローを維持する必要がありますか?
4

1 に答える 1

11

組み込みシステムで開発を行っているのでない限り、この方法でディスク容量を追い求めるのは常に非生産的であることがわかりました。非常に大きなハード ドライブのサイズが数メガバイトであり、RAM の単位が K であった時代に私が育ったため、このことに気付くまでには長い時間がかかりました。プロジェクトを直交化する (システム上のディレクトリをプロジェクト外のどこからでも削除でき、その Python パッケージをそのままにしておくことができる) ことの利点は、開発に忙しい場合に、私の経験では、とにかく気付かない.

これが、私自身の経験から得た教訓だと思います。失われたディスク容量に気付くことはありませんが、ディスク上の 1 か所のディレクトリをクリーンアップしようとすると、開発中のプロジェクトが壊れること気付くでしょう。何処か別の場所。

于 2010-09-11T21:59:44.510 に答える