管理许多Python项目/ virtualenvs

Mic*_*nor 6 python virtualenv

在我的工作场所,我必须管理许多(目前数十个,但最终可能数百个)Python Web应用程序,可能运行各种框架,库等(所有版本都有).到目前为止,Virtualenv一直是管理人员的救星,但我仍然希望能够更好地管理事情,尤其是在管理软件包升级方面.

我想过几个场景

选项1:使用pip为每个virtualenv中的每个项目安装所有必需的模块,根据需要单独升级每个模块.这将需要每次升级的大量时间成本,并且需要额外的文档来跟踪事物.可能会通过一些管理脚本来促进.

选项2:在中央存储库中安装任何应用程序使用的所有库,使用符号链接轻松地为所有项目更改一次版本.轻松升级和集中管理,但放弃了使用virtualenv的一些最好的好处.

选项3:以某种方式将上述两者混合,集中最常见的库和/或可能需要升级的库,并将其余的本地安装到每个virtualenv.

还有其他人有类似的情况吗?处理这个问题的最佳方法是什么?

Nic*_*ley 2

您可以考虑使用 zc.buildout。它的设置比普通的 pip/virtualenv 更烦人,但它为您提供了更多自动化的机会。如果磁盘空间使用不是问题,我建议您继续为每个项目使用单独的环境,这样您就可以一次升级它们。