2013-02-19 34 views
0

在系统范围内安装django应用程序与在项目范围内安装django应用程序有什么优点/缺点(关于可维护性)?有没有推荐的答案?Django应用程序:安装系统范围vs整个项目范围

+0

你的意思是'django extensions',django apps?还有什么是(项目范围),virtualenv还是你的意思是复制你的项目中的应用程序? – almalki 2013-02-19 17:43:20

+0

我很抱歉混淆。我的意思是django社区应用程序,如filebrowser等。“项目范围”我的意思是复制项目内的应用程序,因为我不知道virtualenv的可能性。 – clime 2013-02-19 17:46:07

回答

3

通过django extensions,你的意思是django-extensions?我诚恳地说,我会避开系统范围的安装,他们会立即将您与系统的安装版本联系起来,如果系统范围内出现不兼容问题,那么这是一个比整个项目范围的方法更大的问题。另外,它们在部署到远程服务时增加了复杂性,并且不遵守12 Factor App原则。保持一切自包含,项目代码和它的依赖关系将使生活更容易从长远来看。

我建议使用virtualenvpip来安装依赖关系,这样可以将它们隔离到相关项目中,并大大简化部署。

+0

我的意思是一般的扩展。我是否应该将相同的方法应用于Django(“核心软件包”)本身?即为每个项目单独安装Django? – clime 2013-02-19 17:41:11

+1

是的,我有一个单独的virtualenv为每个项目,与自己的一套依赖项。它使所有内容保持独立,避免系统兼容性问题,并使部署变得简单。 – jvc26 2013-02-19 17:42:12

1

推荐的方法不是复制任何可重复使用的应用程序在你的项目。他们提供扩展点和设置来自定义。另外,建议对项目使用virtualenv,并在那里安装任何特定于项目的python模块。这将保护你免受不同版本的冲突。