2008-10-03 89 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可以达到目的并鼓励不好的做法。