2012-11-09 3 views
5

私は同じような依存関係を必要とするいくつかのプロジェクトを持っており、毎回Webから依存関係を外に出してDLしたくありません。例えば、私はそれをシステム全体にインストールすると私の標準django(rdbmsバージョン)と競合するnorel-djangoパッケージを使用しています。同じマシン上ですべてのパッケージを再度ダウンロードせずにvirtualenvを複製します。

ダウンロードした依存関係をpipで「再利用」する方法はありますか?ソースtar.bz2ファイルをDLして、pipアーカイブなどのフォルダ構造に似せる必要がありますか?いかなる援助も感謝します。

おかげ

答えて

6

$HOME/.pip/pip.confに以下を追加します。

[global] 
download_cache = ~/.pip/cache 

をこれは非常にそれが出て行くと、再び次の時間をそれらをダウンロードする必要はありません~/.pip/cacheでダウンロードをキャッシュするためにピップ伝えます。

+0

これは実際に何をしていますか? –

+0

これは '〜/ .pip/cache'にダウンロードをキャッシュするようpipに指示しますので、次回にダウンロードしてダウンロードする必要はありません。簡潔な答えに対する謝罪。それは私にちょっと自明であるようです(しかし、私はまだ十分なコーヒーを持っていないかもしれません)。 –

+0

実際、すばやいGoogle検索は、これが私の必要としているように見えます。 –

0

virtualenvのはvirtualenv-cloneコマンドを持っている、または多分virtualenvwrapperないように見えますか?

かかわらず、それは、ちょうどCOPYINと仮想環境のディレクトリを貼り付ける少しより複雑になりそうだ。

https://github.com/edwardgeorge/virtualenv-clone

さらにそれはvirtualenvのは、あなたのvirtualenvの移動に容易になるフラグを持って表示されます。

http://www.virtualenv.org/en/latest/#making-environments-relocatable

$ virtualenv --relocatable ENV virtualenvのドキュメントから:

これはsetuptoolsのによって作成されたファイルのいくつかを作るか、または相対パスを使用 を配布し、代わりに activate_this.pyを使用するすべてのスクリプトを変更しますしますPython インタプリタの場所を使用して環境を選択する方法について説明します。

注:パッケージを 環境にインストールした後で実行する必要があります。再配置可能な環境を作成してから 新しいパッケージをインストールする場合は、virtualenv -relocatableを再度実行する必要があります。

また、パッケージをクロスプラットフォームにすることはありません。ディレクトリを に移動することはできますが、他の同様のコンピュータの にしか使用できません。環境の違いによって、 の互換性が失われる可能性があります。異なるプラットフォームのPythonでは、プラットフォームがの場合、UCS2を内部ユニコード表現に使用し、別のプラットフォームでは UCS4(コンパイル時オプション)を使用すると、Windowsのように明らかにプラットフォームが変更されます Linux、またはインテルとARMの間で互換性があり、システム上のC ライブラリにバインドするライブラリがある場合、それらのCライブラリが異なる(異なるバージョンまたは異なるファイルシステム レイアウト)のいずれかにある場合。

このフラグを使用して環境を作成すると、現時点では、 --system-site-packagesオプションが暗黙指定されます。

+0

私は新しいvenvにインストールされているものと重複するだけで、site-packagesフォルダを移動する必要はありません。私はピップの凍結と私の新しいvenvにインポートすることができますが、それはまだ私が既にパッケージを持っていることを知っているので、devのボックスのようなものは、どこかのマシン。 –

+0

@ PaulJ.Warner、私はパッケージを再インストールしないようにvirtualenvをクローンする方法に関するいくつかの提案を提供しようとしていました – dm03514

関連する問題