如何复制virtualenv
我有一个已经创建好的虚拟环境,这里面装了很多软件包,但Django的版本比较旧。
我想要做的是复制这个环境,这样我就可以拥有一个完全相同的软件包的环境,但是Django的版本是新的。我该怎么做呢?
9 个回答
20
最简单的方法是使用 virtualenv-clone
这个工具包。
如果你想把 venv1
复制到 venv2
,可以按照以下步骤操作:
在
venv1
或者一个临时的虚拟环境venv_dummy
中安装virtualenv-clone
。要创建venv_dummy
,可以使用:python -m virtualenv venv_dummy source venv_dummy/bin/activate
安装
virtualenv-clone
的命令是:(venv_dummy): pip install virtualenv-clone
接下来,把
venv1
复制到venv2
,可以用:(venv_dummy): virtualenv-clone venv1/ venv2/
39
另一个选择是使用 virtualenv-clone
这个工具:
这是一个用来复制不能移动的虚拟环境的脚本。
248
最简单的方法是使用pip来生成一个需求文件。这个需求文件其实就是一个列出了你想安装(或者已经安装)的所有Python包的文件,还有它们的版本信息。
要生成这个需求文件,你需要进入你原来的虚拟环境,然后运行:
pip freeze > requirements.txt
这样就会为你生成一个requirements.txt文件。如果你用你喜欢的文本编辑器打开这个文件,你会看到类似下面的内容:
Django==1.3
Fabric==1.0.1
etc...
接下来,把里面写着Django==x.x
的那一行改成Django==1.3
(或者你想在新虚拟环境中安装的任何版本)。
最后,激活你的新虚拟环境,然后运行:
pip install -r requirements.txt
这样pip就会自动下载并安装你在requirements.txt文件中列出的所有Python模块,按照你指定的版本来安装!