2012-01-09 11 views

答えて

0

通常、.egg-infoは、virtualenvのlib/site-packagesフォルダから他の環境のlib/site-packagesにコピーできます。

35

限り、あなたは同じマシン上の別のvirtualenvのからそれらを移動しているとして、あなたは簡単にだけ行うことができます。しかし

$ cp -r [env1]/lib/pythonX.X/site-packages/* [env2]/lib/pythonX.X/site-packages/ 

、環境が異なるマシン上にあるか、異なるバージョンを利用している場合Pythonやその他の大きな違いがある場合は、おそらく良い考えではありません。一般に、requirements.txtを生成し、それを使用して他の環境のすべての同じモジュールをロードする方がはるかに安全です。必要に応じて手動でファイルを作成できますが、pipを使用する方が簡単です。

$ pip freeze -E [env1] > requirements.txt 

それとも、あなたのvirtualenvのが既に起動されている場合、あなたは、単に行うことができます:私が働いている

$ pip install -E [env2] -r /path/to/requirements.txt 
+0

にすべてのパッケージをインストールします。この? – Claudiu

+0

問題は、コピーされたパッケージの数量ではなく、ソースとデスティネーションの間のPythonバージョン、システムアーキテクチャなどの違いにあります。送信元と送信先が同じマシン上にある場合は、正常である必要があります。それらが異なるマシン上にある場合は、 'pip freeze'を使用してください。 –

2

$ pip freeze > requirements.txt 

次に、あなたの他の環境では、あなたが行うことができますUbuntu-14.04-64を搭載した64ビットマシン。 Python-3.4.3を/opt/python3.4/にコンパイルしてインストールし、このpythonに基づいてvitualenvを作成しました。容易にするためにも

mkvirtualenv -p /opt/python3.4/bin/python venv1 

:venvインストールされ、正常PyQt5(ハードビット)での作業に加えてnumpyの、scipyのダウンロード、ipythonなど で

sudo apt-get install virtualenvwrapper 

私はvirtualenvのクローンをインストール:

その後、
workon myvenv 
pip install virtual-clone 
deactivate 

とは走っ:

virtualenv-clone venv1 venv2 

PyQt5はこのように動作します。コマンドラインプロンプトは、まだ名前venv1としてアクティブしかし〜/ .virtualenv/venv2

cat activate* | grep "venv1" 

内の3つのファイル内の3つのエントリがactivate.csh、およびアクティベートを有効と表示されます。アクティブで魚

if [ "x(myvenv1) " != x ] ; then 
     PS1="(myvenv1) $PS1" 
else 
を変更

アクティブで
... 
     PS1="(myvenv2) $PS1" 
... 

から

。今

... 
    printf "%s%s%s" "(venv2) " (set_color normal) (_old_fish_prompt) 
... 

... 
    set env_name = "venv2" 
... 

でactivate.fish変更

if test -n "(venv1) " 
     printf "%s%s%s" "(venv1) " (set_color normal) (_old_fish_prompt) 
     return 
end 

へのcsh変更

if ("venv1" != "") then 
     set env_name = "venv1" 
else 

ときsource ~/.virtualenv/venv2/bin/activateまたはworkon venv2コマンドプロンプトで環境(venv1のクローンコピー)が正しく表示されます。

編集:これは質問に答えません"virtualenvから別のモジュールにモジュールをコピーするにはどうすればいいですか"しかし、結果は多くの場合希望のもの、つまり新しいvenvベースの作成です以前にインストールされた(すべての)モジュールを含む以前に作成されたモジュール上に作成されます。

0

私たちはただ一つのvirtualenvを別のものとしてコピーできないようです。 アクティベーションファイルで$ VIRTUAL_ENVを変更しても、元のvirtualenvのように動作し、pipは元のサイトパッケージ/

関連する問題