首页 > 解决方案 > 如何使用 conda 或 virtualenv 在虚拟环境之间共享包?

问题描述

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


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

所以,在这个例子中:

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

如何使用选定的包创建虚拟环境,这样如果全局安装了一个包,则不会在本地创建该包的文件的新副本?这可以使用condavirtualenv任何其他工具吗?

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

标签: pythonvirtualenv

解决方案


使用 PyCharm,您可以关联项目,并且您可能可以操纵 venv/Source/activate.bat 文件中的 PYTHONPATH 变量,但我认为您在找错树。

我相信您最好设置一个私有 PyPi 服务器(示例)。这样做,您可以将 pip-install 安装到您的新项目中 - 具有版本控制和其他优点的额外优势。否则,您实际上只是在取消虚拟环境最初为您提供的大部分封装优势。


推荐阅读