使用 virtualenvwrapper,我为一个 virtualenv 安装了 Django。现在我无法在那个环境之外到达它。我希望能够在任何 virtualenv 之外和新的 virtualenvs 内启动新的 Django 项目。
我需要重新安装 Django 还是可以从我的第一个 virtualenv 导入安装?
使用 virtualenvwrapper,我为一个 virtualenv 安装了 Django。现在我无法在那个环境之外到达它。我希望能够在任何 virtualenv 之外和新的 virtualenvs 内启动新的 Django 项目。
我需要重新安装 Django 还是可以从我的第一个 virtualenv 导入安装?
我建议从头开始使用新的 virtualenv。这就是它们被构建的原因:一个 virtualenv 可以容纳一个使用一个版本的 Django 的项目,但另一个项目可以使用一个单独的 Django 版本(可能是旧版本,因为您正在使用的应用程序尚未使用较新的版本)。
如果您尝试完全重新创建相同的环境(可能是因为您想在另一个地方运行该项目),您可以在 alexcxe 的回答中使用 pip freeze 。这将从头开始重新安装所有内容,尝试安装完全相同的版本。由于我在第一段中提到的原因,您可能想要也可能不想这样做。
这就是虚拟环境的全部意义所在。我的电脑上有 20 个不同的项目,每个项目都有自己的 virtualenv。以这种方式工作是相当普遍的。
最简单的方法是将freeze
您的要求放入requirements.txt
新的 virtualenv 中,然后将它们安装在新的 virtualenv 中:
pip freeze > requirements.txt
pip install -r requirements.txt
另一种选择是使您的虚拟环境可重定位并在每次需要新环境时复制。这有点难做,见:
仅供参考,virtualenvwrapper 有cpvirtualenv命令,但您应该谨慎使用它:
不很好地支持复制虚拟环境。每个 virtualenv 都有硬编码到其中的路径信息,并且可能存在复制代码不知道更新特定文件的情况。谨慎使用。
您可以使用 virtualenvwrapper 的add2virtualenv命令。
如果您有良好的互联网连接,为每个新的 Virtualenv 实例安装 django(或其他)可能不是问题。但是如果您想将现有的 virtualenv 包复制到新的包,您可以简单地执行以下操作(附图片),只需创建一个空白的 virtualenv 并将所有站点包复制到新的