在Python中的不同virtualenv环境中共享相同版本的egg依赖项

时间:2013-12-17 22:51:31

标签: python virtualenv

让我们来看一下极端的情况。假设您有3个项目,A,B,C。这些项目的包依赖关系是:

项目A:a-1.3b-2.4

项目B:a-1.3b-2.5

项目C:a-1.5b-2.4

使用virtualenv,我必须为项目创建3个环境并安装自己的软件包版本ab。不是为每个项目安装冗余软件包,而是创建4个环境(分别为a-1.3,a-1.5,b-2.4,b-2.5)并将这些环境加载到模块化的环境中更好?例如,我们可以激活项目A的环境a-1.3和b-2.4。

1 个答案:

答案 0 :(得分:0)

不幸的是,这是不可能的,或者使用virtualenv环境来管理跨环境的共享依赖关系会有些困难。

但是,存在一个更重要的工具来管理Python包依赖项buildout。 buildout具有eggs-directory功能,可以在同一本地计算机上的不同扩展中提取和共享所有下载的Python鸡蛋。

为您的项目创建一个buildout.cfg文件,其内容如下:

 [buildout]
 eggs-directory=/path/to/shared/eggs/folder

或者,您可以通过创建~/.buildout/default文件来为每个用户设置此项。

以下是eggs-directory安装程序中使用的Plone示例。