2008-10-03 88 views
18

我有一個由多個Python包組成的Python web應用程序。建立和部署到服務器的最佳方式是什麼?如何構建和部署Python web應用程序

目前我正在使用Capistrano部署軟件包,使用bash將軟件包安裝到virtualenv中,並使用puppet配置服務器,但是我想要尋找更多基於Python的解決方案。

我一直在尋找zc.buildout,但我不清楚我可以/應該使用它。

回答

0

pyinstall看起來應該是你一個簡單的解決方案。至少就包裝python的東西和安裝在virtualenv去。我不知道pythonic方式做服務器配置...

1

Paver是一個耙子/使工作相似的蟒蛇。我不知道這是你尋找的東西,還沒有發現任何相當於蟒蛇的木偶......

0

我使用Mercurial作爲我的SCM系統,也用於部署。這只是從另一個版本庫中克隆版本庫的問題,然後pull/update或fetch會使其更新。

我使用了幾個存儲庫實例 - 一個在開發服務器上,一個(或更多,取決於環境)在本地機器上,一個在生產服務器上,一個「主」存儲庫可用於更大互聯網(儘管只通過SSH)。

它沒有做的唯一的事情是自動更新數據庫,如果它被更改,但與傳入掛鉤我也可能做到這一點。

+0

如果您使用的是SCM,是否意味着您在存儲庫中縮小了文件?也建立PO文件?因此,在每次提交源代碼之後,提交者還必須重建二進制/派生文件並提交它們呢? – Almad 2010-05-06 09:27:02

2

取決於您的基礎設施是什麼。我們只是使用debian軟件包和buildbot來製作它們。

在其他設置中,我使用Fabric腳本。至於格式,我只使用tbz2文件,但我聽說過人們只是在放棄雞蛋。

我強烈建議正確構建並使用BuildBot/Hudson來構建包,因爲使用SCM可以達到目的並鼓勵不好的做法。