【问题标题】:Do I need to reinstall Django for new virtualenv?我需要为新的 virtualenv 重新安装 Django 吗?
【发布时间】:2013-09-18 15:48:41
【问题描述】:

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

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

【问题讨论】:

  • 如果你想在 virtualenvs 之外安装 django,在 virtualenvs 之外安装一个。
  • 这就是 virtualenv 的意义——一个隔离的环境。

标签: python django virtualenv virtualenvwrapper


【解决方案1】:

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

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

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

【讨论】:

  • 所以,澄清一下,对于这 20 个项目中的每一个,您都重新安装了 Django 吗?
  • 谢谢。这澄清了一些事情。
【解决方案2】:

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

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

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

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

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

【讨论】:

  • 感谢您详细解释!
【解决方案3】:

您可以使用 virtualenvwrapper 的add2virtualenv 命令。

【讨论】:

    【解决方案4】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-07
      • 2023-03-22
      • 2015-05-15
      • 1970-01-01
      • 2020-08-14
      • 1970-01-01
      • 2011-01-14
      • 2013-07-24
      相关资源
      最近更新 更多