我是否需要为新的virtualenv重新安装Django?

时间:2013-09-13 20:54:39

标签: python django virtualenv virtualenvwrapper

使用virtualenvwrapper,我为一个virtualenv安装了Django。现在我无法在那种环境之外达到它。我希望能够在任何virtualenv以及新的virtualenvs内部开始新的Django项目。

我是否需要重新安装Django或者我可以以某种方式从我的第一个virtualenv导入安装?

4 个答案:

答案 0 :(得分:2)

我建议从头开始使用新的virtualenv。这就是它们构建的原因:一个virtualenv可以容纳一个使用一个版本的Django的项目,但另一个项目可以使用单独版本的Django(可能是旧版本,因为你正在使用的应用程序尚未使用较新版本。)

如果您尝试完全重新创建相同的环境(可能是因为您想在另一个位置运行项目),您可以在alexcxe的答案中使用pip冻结。这将从头开始重新安装所有内容,尝试安装完全相同的版本。由于我在第一段中提到的原因,您可能会也可能不想这样做。

这是虚拟环境的全部要点。我的计算机上有20个不同的项目,每个项目都有自己的virtualenv。以这种方式工作是相当普遍的。

答案 1 :(得分:1)

最简单的方法是将freeze您的要求转移到requirements.txt,然后将其安装到新的virtualenv中:

pip freeze > requirements.txt
pip install -r requirements.txt

另一种选择是让您的虚拟环境可重定位,并在每次需要新环境时进行复制。这有点难,请看:

仅供参考,virtualenvwrapper有cpvirtualenv命令,但您应谨慎使用:

  

不支持复制虚拟环境。每个virtualenv   将路径信息硬编码到其中,并且可能存在这样的情况   复制代码不知道更新特定文件。使用   小心。

答案 2 :(得分:0)

您可以使用virtualenvwrapper的add2virtualenv命令。

答案 3 :(得分:0)

如果你有良好的互联网连接,为每个新的Virtualenv实例安装django(或其他)可能不是问题。但是,如果您想将现有的virtualenv包复制到新的包中,您可以简单地执行以下操作(附图),这只是创建一个空白的virtualenv并将所有站点包复制到新的

Picture above is about moving virtualenv to another directory, which cause it to break. But the essence with creating a new virtualenv with existing packages is the same