重复的virtualenv

我在virtualenv有一个现有的环境,有很多包,但是一个旧的Django版本。

如果我想复制这个环境,
所以我可以有另一个环境,我可以安装一个更新的Django版本,
但保留已经在其他环境中的所有包?

最简单的方法是使用pip生成需求文件。 需求文件基本上是一个文件,其中包含您想要安装的所有python软件包的列表(或者在pip生成文件的情况下已经安装),以及它们的版本。

要生成需求文件,请进入您的原始virtualenv,然后运行:

 pip freeze > requirements.txt 

这将为您生成requirements.txt文件。 如果你在你最喜欢的文本编辑器中打开这个文件,你会看到类似于:

 Django==1.3 Fabric==1.0.1 etc... 

现在,编辑Django==xx这一行来说Django==1.3 (或者你想要在你的新virtualenv中安装的任何版本)。

最后,激活你的 virtualenv,并运行:

 pip install -r requirements.txt 

并且pip将自动下载并安装您的requirements.txt文件中列出的所有python模块,无论您指定什么版本!

另一个select是使用virtualenv-clone包:

用于克隆不可重定位的virtualenv的脚本。

virtualenvwrapper提供了一个命令来复制virtualenv

 cpvirtualenv ENVNAME [TARGETENVNAME] 

你能不能简单地说:

  • 将现有的虚拟env目录复制到新的虚拟env目录
  • 更新到新的Django?