我应该如何使用virtualenv将现有的python环境分叉到新环境中?

时间:2014-06-03 14:17:19

标签: python copy fork virtualenv

我已经为python安装了virtualenv。我安装了一些包,例如" nose"我决定尝试安装一些其他软件包而不影响以前的环境。 我输入命令,

virtualenv --system-site-packages --always-copy some_new_env

它回应了,

some_new_env \ Scripts \ python.exe中的新python可执行文件 安装setuptools,pip ......完成。

然后我查看了文件夹some_new_env \ lib \ site-packages \,其中只包含以下文件和文件夹:

<_markerlib>
<pip>
<pip-1.5.6.dist-info>
<setuptools>
<setuptools-3.6.dist-info>
easy_install.py
easy_install.pyc
pkg_resources.py
pkg_resources.pyc

Nose等已安装的软件包未安装到此文件夹中。打字命令不正确吗?我应该如何键入一个正确的命令来将在out环境中安装的那些软件包复制到新环境中?

1 个答案:

答案 0 :(得分:7)

理想情况下,您不应该复制virtualenvs - 相反,您应该跟踪所需的软件包并将其安装在新的virtualenv中。

如果您使用pip

,这会变得更加容易
$ env1/bin/pip freeze > requirements.txt
$ env2/bin/pip install -r requirements.txt

作为奖励,您可以将requirements.txt检入源代码管理中,这样您就可以随时了解需要安装哪些软件包才能使某个版本正常运行。

Here's the relevant documentation for pip freeze