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

如何构建和部署Python web应用程序,python,deployment,Python,Deployment,我有一个pythonweb应用程序,它由几个Python包组成。构建并将其部署到服务器的最佳方式是什么 目前,我正在使用Capistrano部署软件包,使用bash将软件包安装到virtualenv中,并使用puppet配置服务器,但我希望使用更基于Python的解决方案 我一直在研究zc.buildout,但我不清楚我可以/应该用它做什么。SCons会做你想做的吗 看起来这应该是一个更简单的解决方案。至少在打包python内容并在virtualenv中安装方面是这样。我不知道有什么python

我有一个pythonweb应用程序,它由几个Python包组成。构建并将其部署到服务器的最佳方式是什么

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


我一直在研究zc.buildout,但我不清楚我可以/应该用它做什么。

SCons会做你想做的吗


看起来这应该是一个更简单的解决方案。至少在打包python内容并在virtualenv中安装方面是这样。我不知道有什么python式的方法来进行服务器配置…

是一种类似于python的rake/make方法。我不知道这是否是您想要的,仍然没有找到任何与puppet for python等效的东西…

我使用Mercurial作为我的SCM系统,也用于部署。这只是从另一个存储库克隆存储库的问题,然后通过拉/更新或获取将其更新

我使用了多个存储库实例——一个在开发服务器上,一个(或多个,取决于环境)在我的本地计算机上,一个在生产服务器上,以及一个在更大的internet上可用的“主”存储库(尽管仅通过SSH)


它唯一不做的事情就是在数据库发生更改时自动更新数据库,但是使用传入的钩子,我可能也可以这样做。

取决于您的基础结构是什么。我们只是使用debian软件包和buildbot来实现它们

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


我强烈建议进行适当的构建,并使用BuildBot/Hudson来构建包,因为使用SCM无法达到目的,而且会鼓励不良做法

如果您使用的是SCM,这是否意味着您的存储库中有缩小的文件?也生成PO文件?因此,在每次源代码提交之后,提交者还必须重建二进制/派生文件并提交它们?实际上,文件的缩小/缓存版本是在服务器上使用django css生成的。