使用依赖项部署Django Opensource应用程序

时间:2009-11-04 02:22:23

标签: ruby-on-rails django deployment open-source web-deployment-project

我正在与我们想要分发的网络应用程序上的朋友合作,我们正在Django工作。

我想确保潜在用户的部署尽可能简单。似乎Django使用共享安装的库很多,我想让人们只需要下载我们的最新版本,解压缩,编辑配置文件或两个并开始使用,如wordpress等。

我已经习惯了ruby on rails风格的部署,你可以将你的宝石和插件活塞到供应商目录中,这就是你需要依赖的全部内容。

使用捆绑的所有依赖项部署应用程序的类似django方法是什么?我宁愿在安装后不必使用像easy_install这样的东西来拉下依赖项。

This Python Stack Overflow Answer似乎是在正确的轨道上,但是有一种django特定的方式吗?这是一个解决的问题吗?

2 个答案:

答案 0 :(得分:13)

这里最好的选择是使用pip。 pip是一个用于安装python包的实用程序。它允许您创建列出项目依赖项的需求文件。 pip很常见并且被Django社区广泛使用,我强烈推荐使用它。

正如T. Stone所提到的Pinax,一个基于Django的项目有许多依赖项,他们非常成功地使用了pip需求文件。

答案 1 :(得分:1)

这是Django“可重用应用程序”的一大局限。在一周或两周前的“Django本周”播客中,他们正在谈论这个确切问题。似乎我们同意的共识是,确实没有解决方案。

如果你看看Pynax,这可能是最大的分布式Django项目,你会发现他们正在将应用程序与整个系统捆绑在一起。

Python本身有一些包发行版。我知道ActiveState正在努力启动另一个。但即便如此,并非所有django应用程序都已打包。许多只能在bitbucket,github或google source中找到。即便如此,要获得所有这些副本还需要安装mercurial,git和svn。 (等等)

你基本上有2个选项:

  1. 在源
  2. 中包含每个依赖项的副本
  3. 包含用户如何安装给定依赖关系的文档
  4. 这是一个悲伤的清单,我知道。 实际上很糟糕,尤其是在使用红宝石宝石系统之后,但目前我不确定你会发现什么更好。

    如果感兴趣,我写了一篇关于在项目文件夹(或SVN)中保留依赖关系的简短博文,然后在django开头将该路径添加到Python的搜索路径中。 (Managing Django Dependencies via SVN)它搞砸了Komodo Edit的intellisense,但它确实使事情更容易。