如何构建和部署Python Web应用程序

时间:2020-03-06 15:04:08  来源:igfitidea点击:

我有一个包含多个Python程序包的Python Web应用程序。将其构建并部署到服务器的最佳方法是什么?

目前,我正在使用Capistrano部署软件包,使用bash将软件包安装到virtualenv中,并使用puppet配置服务器,但是我想使用基于Python的解决方案。

我一直在寻找zc.buildout,但是对我来说我不清楚我可以/应该使用它什么。

解决方案

SCons会做什么?

http://www.scons.org/

pyinstall看起来对我们来说应该是一个更简单的解决方案。至少就包装python东西并安装到virtualenv而言。我不知道使用pythonic方式进行服务器配置的方法...

Paver是python的耙/制作工具。我不知道这是否是我们要寻找的东西,仍然找不到与python相对应的东西...

我将Mercurial用作我的SCM系统,也用于部署。只需从另一个仓库中克隆存储库,然后进行拉取/更新或者获取操作即可将其更新。

我使用存储库的几个实例,一个在开发服务器上,一个(或者多个,视情况而定)在我的本地计算机上,一个在生产服务器上,以及一个"主"存储库,该存储库可用于更大的Internet(尽管只能通过SSH)。

唯一不做的是如果更改了数据库则自动更新数据库,但是使用传入的挂钩,我也可能会这样做。

取决于基础架构是什么。我们只是使用debian软件包和buildbot来制作它们。

在其他设置上,我使用Fabric脚本。至于格式,我只是使用tbz2文件,但是我听说有人只是在部署鸡蛋。

我强烈建议我们进行适当的构建,并让BuildBot / Hudson来构建软件包,因为使用SCM可以达到目的并鼓励不良做法。