5

我正在与一位朋友合作分享我们想要分发的Web应用程序,并且我们正在使用Django。部署带有依赖关系的Django Opensource应用程序

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

我习惯于ruby on rails风格部署,您可以将宝石和插件活塞化为供应商目录,这就是您需要依赖的一切。

什么是类似的Django的方式来部署一个应用程序与所有的依赖捆绑?我不想使用easy_install之类的东西在安装后拉下依赖关系。

This Python Stack Overflow Answer好像它是在正确的轨道上,但有没有Django具体的路要走?这是一个解决的问题?

回答

1

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

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

Python本身有几个包发行版。我知道ActiveState正在开发另一个。但即便如此,并非所有的django应用程序都打包了。许多只能在bitbucket,github或Google来源中找到。即使如此,要获得所有这些的副本,需要安装mercurial,git和svn。 (废话@那)

你基本上有两个选择在这里:

  1. 包括每一个依赖的副本与源
  2. 包括用户如何安装一个给定的依赖文档

我知道这是一个令人伤心的名单。 它实际上很烂,特别是使用红宝石宝石系统后,但目前我不知道你会找到更好的。

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

+0

我认为这种捆绑策略可能与红宝石轨道上的人物最接近。 – MattK 2009-11-05 22:08:20

13

这里最好的选择是使用pip。 pip是安装python软件包的工具。它允许您创建列出项目依赖关系的需求文件。点是相当普遍的,并被Django社区广泛使用,我强烈推荐使用它。

由于T. Stone提到Pinax,一个基于Django的项目有很多依赖关系,并且他们使用pip需求文件相当成功。

+0

另外,如果您是virtualenv/pip的新手,我在这里写了一个介绍:http:// bit。ly/IFx0I – richleland 2009-11-04 03:29:52

+0

这真的应该是这个问题的正确答案! – vdboor 2011-03-21 18:44:45

相关问题