5

我正在与一位朋友一起开发我们想要分发的 Web 应用程序,并且我们正在使用 Django。

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

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

部署捆绑了所有依赖项的应用程序的类似 django 方式是什么?我不希望在安装后不必使用 easy_install 之类的东西来下拉依赖项。

这个 Python Stack Overflow Answer似乎是在正确的轨道上,但是有没有 django 特定的方法可以走?这是一个已解决的问题吗?

4

2 回答 2

13

您最好的选择是使用pip。pip 是一个用于安装 python 包的实用程序。它允许您创建列出项目依赖项的需求文件。pip 在 Django 社区中非常普遍和广泛使用,我强烈推荐使用它。

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

于 2009-11-04T02:48:38.347 回答
1

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

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

Python 本身有一些包分发。我知道 ActiveState 正在努力启动另一个。但即便如此,并不是所有的 django 应用程序都被打包。许多只能在 bitbucket、github 或 google 源中找到。即便如此,要获得所有这些的副本,还需要安装 mercurial、git 和 svn。(废话@那个)

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

  1. 在您的源代码中包含每个依赖项的副本
  2. 包括有关用户如何安装给定依赖项的文档

这是一个悲伤的清单,我知道。 它实际上很糟糕,尤其是在使用 ruby​​ gem 系统之后,但目前我不确定你会找到更好的方法。

如果有任何兴趣,我写了一篇关于将依赖项保存在项目文件夹(或 SVN)中的简短博客文章,然后在 django 开始时将该路径添加到 Python 的搜索路径中。(通过 SVN 管理 Django 依赖项)它搞砸了 Komodo Edit 的智能感知,但它确实让事情变得更容易。

于 2009-11-04T02:37:20.717 回答