Python 如何将已安装的软件包移动到新创建的虚拟环境?

Python 如何将已安装的软件包移动到新创建的虚拟环境?,python,virtual-environment,Python,Virtual Environment,我已经在全球环境中下载了很多软件包(比如说)。现在,我想创建一个新的虚拟环境,并将一些包移动到该环境中。我该怎么做?虽然您可以将全局安装的site packages目录中的文件/目录复制到虚拟环境的site packages目录中,但您可能会遇到问题(缺少文件、二进制不匹配或其他问题)。如果您不熟悉python打包机制,请不要这样做 我建议您从全局安装中运行pip freeze,以获取您安装的内容列表,然后将该输出存储为源代码中的requirements.txt,并将其置于源代码管理之下。激活v

我已经在全球环境中下载了很多软件包(比如说)。现在,我想创建一个新的虚拟环境,并将一些包移动到该环境中。我该怎么做?

虽然您可以将全局安装的site packages目录中的文件/目录复制到虚拟环境的site packages目录中,但您可能会遇到问题(缺少文件、二进制不匹配或其他问题)。如果您不熟悉python打包机制,请不要这样做


我建议您从全局安装中运行
pip freeze
,以获取您安装的内容列表,然后将该输出存储为源代码中的
requirements.txt
,并将其置于源代码管理之下。激活virtualenv后,运行
pip install-r requirements.txt
,然后将依赖项(具有相同版本)复制到virtualenv中。

如果尝试复制或重命名虚拟环境,您会发现复制的环境无法工作。这是因为虚拟环境与创建它时使用的Python和创建它时所在的位置密切相关。(“可重新定位”选项不起作用

但是,这很容易修复。不需要移动/复制,只需在新位置创建一个新环境。要创建VirtualEnvironment,此方法对我有效,或者您可以查看以下链接:

pip install virtualenv
virtualenv NameOfYourVirtualEnvironment
virtualenv NameOfYourVirtualEnvironment/bin/activate
然后,在旧环境中运行
pip freeze>requirements.txt
,创建一个安装在其中的软件包列表,即全局环境。这样,您就可以在新环境中运行
pip install-r requirements.txt
,从保存的列表中安装软件包。当然,您可以复制requirements.txt b在许多情况下,它只会工作;有时,您可能需要对requirements.txt进行一些修改,以删除特定于操作系统的内容

资料来源:

这也可能对你有用:

看看这个:为什么不使用“无全局”选项创建一个新的venv,pip安装您以前本地版本中已有的内容,然后运行您的代码。调整错误,而不是预分析。顺便说一句,这是一套好的自动化测试派上用场的地方。