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