如何使用conda或virtualenv在虚拟环境之间共享包?

时间:2018-05-12 00:57:32

标签: python virtualenv

我有多个python项目,每个项目都有自己的虚拟环境。另外我有一个全球python环境。我想在虚拟/全局环境之间共享相同的包文件,而不是多次复制它们(如果可能)。


Environment        Packages
----------------------------------------
GLOBAL:      A    B    C    D    
VENV_1:      A    B    C         E
VENV_2:                C    D         F

所以,在这个例子中:

  • 所有环境都将共享C相同文件
  • GLOBALVENV_1也会共享AB的文件。
  • GLOBALVENV_2将共享D
  • 的文件
  • 但由于EF未全局安装,因此虚拟环境将单独安装这些软件包。

我尝试将virtualenv--system-site-packages标记一起使用,但这只会使所有全局包在虚拟环境中可访问。因此,当我使用pip freeze导出我的环境时,它将包含不必要的包。

如何使用精选软件包创建虚拟环境,以便在全局安装软件包时,该软件包的新文件副本不会在本地生成?这可以使用condavirtualenv或任何其他工具吗?

我正在使用带有python 3.6的Windows 10。

1 个答案:

答案 0 :(得分:0)

使用PyCharm你可以关联项目,你可以在你的venv / Source / activate.bat文件中操作PYTHONPATH变量,但我认为你正在咆哮错误的树。

我相信你在设置私有PyPi服务器(example)方面要好得多。通过这样做,您可以将pip-install添加到新项目中 - 具有版本控制和其他优点的附加优势。否则,您实际上只是撤消了虚拟环境首先为您提供的大部分封装优势。