我在virtualenv中有一個現有的環境,有很多包,但是是一箇舊的Django版本。Duplicate virtualenv
如果我想複製這種環境下,
所以我可以有另一種環境,使我可以安裝一個新的Django版本,
但保留了那些已經在其他環境中的所有包?
我在virtualenv中有一個現有的環境,有很多包,但是是一箇舊的Django版本。Duplicate virtualenv
如果我想複製這種環境下,
所以我可以有另一種環境,使我可以安裝一個新的Django版本,
但保留了那些已經在其他環境中的所有包?
最簡單的方法是使用pip生成需求文件。需求文件基本上是一個文件,其中包含您要安裝的所有python軟件包的列表(或者在文件由pip生成的情況下已經安裝),以及它們的版本。
要生成一個需求文件,進入你原來的virtualenv,然後運行:
pip freeze > requirements.txt
這將產生requirements.txt文件給你。如果你在你最喜歡的文本編輯器打開這個文件,你會看到類似這樣的:
Django==1.3
Fabric==1.0.1
etc...
現在,編輯說:Django==x.x
行說Django==1.3
(或者你想在新的virtualenv安裝任何版本) 。
最後,激活您的新的virtualenv,然後運行:
pip install -r requirements.txt
和PIP會自動下載並安裝所有在requirements.txt文件中列出的Python模塊,在任何版本的指定!
另一種選擇是使用virtualenv-clone
包:
用於克隆的非可重定位的virtualenv的腳本。
嗨,我是否有權假設這允許我將整個Python環境複製到文件中。然後,我只需要在新的計算機/操作系統中加載此文件,並且我會將所有網站包安裝回 – aceminer
virtualenvwrapper
提供command to duplicate virtualenv
cpvirtualenv ENVNAME [TARGETENVNAME]
不是一個好主意。 「複製虛擬環境得不到很好的支持,每個virtualenv都有硬編碼的路徑信息,並且在某些情況下複製代碼不知道它需要更新一個特定的文件,請謹慎使用。 – Temak
我想點子凍結您的所有需求變成了「requirements.txt」文件並創建另一個的virtualenv和運行PIP安裝requirements.txt –
如果虛擬的Python版本你想複製的環境與默認的python環境不同,你可以將新環境設置爲'virtualenv -p/path/to/older/venv/bin/python new_venv',然後使用你的'requirements.txt' 'pip freeze'後生成# – GiriB