5

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

我需要重新安装 Django 还是可以从我的第一个 virtualenv 导入安装?

4

4 回答 4

2

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

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

这就是虚拟环境的全部意义所在。我的电脑上有 20 个不同的项目,每个项目都有自己的 virtualenv。以这种方式工作是相当普遍的。

于 2013-09-13T21:15:28.410 回答
1

最简单的方法是将freeze您的要求放入requirements.txt新的 virtualenv 中,然后将它们安装在新的 virtualenv 中:

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

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

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

不很好地支持复制虚拟环境。每个 virtualenv 都有硬编码到其中的路径信息,并且可能存在复制代码不知道更新特定文件的情况。谨慎使用。

于 2013-09-13T21:00:24.020 回答
0

您可以使用 virtualenvwrapper 的add2virtualenv命令。

于 2013-09-13T21:07:48.947 回答
0

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

上图是关于将 virtualenv 移动到另一个目录,这会导致它崩溃。 但是用现有的包创建一个新的 virtualenv 的本质是一样的

于 2013-11-21T00:04:58.757 回答