Django - 将软件包安装到virtualenv/system或将它们包含在项目中是否更好?

Nit*_*hin 1 python django project

可以在python/django中使用的大量应用程序/软件包是两者的一大优势.这也引发了关于处理这些已安装的应用程序/库的问题,尤其是在存在必须部署项目的多个环境时.

将这样的第三方库安装到系统对我来说似乎并不理想.经过一些研究,我发现有两种可能的方法,即virtualenv或包含在项目文件夹中的包.但问题是为每个项目创建virtualenv有点混乱,另一方面,包括项目目录中的大包增加了项目大小并且还产生了导入问题.

我发现上述两种方法之间存在中间立场,即安装库,可以将多个项目共享到virtualenv和项目中较小的项目特定库中.

例如,对于django项目,我会将django安装到virtualenv中,项目中使用的其他库(例如xlwrt,dojango等)包含在项目中的"lib"文件夹中.

这是最好的方式还是有更好的替代方法?

DrT*_*rsa 5

最好的方法是为每个项目使用单独的virtualenv.它没有任何混乱(使用virtualenvwrapper).

在项目之间共享库总是存在潜在风险:如果要在一个项目中升级库并在另一个项目中使用旧版本,该怎么办?

同时pip freeze会列出AP的实际列表中的项目,而不是一些列表中,您应该手动筛选.