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

时间:2018-12-22 16:49:07

标签: python virtual-environment

我已经将许多软件包下载到了全局环境中(可以这么说)。现在,我想创建一个新的虚拟环境并将某些软件包移至该环境。我该怎么办?

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

如果尝试复制或重命名虚拟环境,则会发现复制的环境不起作用。这是因为虚拟环境与创建它的Python以及创建它的位置紧密相关。(“可重定位”选项不起作用。

但是,这很容易解决。无需移动/复制,只需在新位置创建一个新环境即可。创建VirtualEnvironment。这种方式对我有用,或者您可以查看下面的链接:

mdrop (-3) [1, 2, 3, 4, 5, 7, 88, 6]

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

来源:https://chriswarrick.com/blog/2018/09/04/python-virtual-environments/

这也可能对您有用: How to import a globally installed package to virtualenv folder https://gist.github.com/k4ml/4080461