it-swarm.cn

如何复制virtualenv

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

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

106
dolma33

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

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

pip freeze > requirements.txt

这将为您生成 requirements.txt file。如果您在自己喜欢的文本编辑器中打开该文件,您会看到如下内容:

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

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

最后,激活你的 new virtualenv,然后运行:

pip install -r requirements.txt

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

148
rdegges

另一种选择是使用 virtualenv-clone package:

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

24
alecxe

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

cpvirtualenv ENVNAME [TARGETENVNAME]
11
Raymond

如果你正在使用 Anaconda 你可以运行:

conda create --name myclone --clone myenv

这会将myenv复制到名为myclone的新创建的环境中。

2
Jordan

你能不能简单地说:

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