我已经为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环境中安装的那些软件包复制到新环境中?
答案 0 :(得分:7)
理想情况下,您不应该复制virtualenvs - 相反,您应该跟踪所需的软件包并将其安装在新的virtualenv中。
如果您使用pip
:
$ env1/bin/pip freeze > requirements.txt
$ env2/bin/pip install -r requirements.txt
作为奖励,您可以将requirements.txt
检入源代码管理中,这样您就可以随时了解需要安装哪些软件包才能使某个版本正常运行。