如何构建和部署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可以达到目的并鼓励不良做法。