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

18

我有一个包含多个Python包的Python Web应用程序。在服务器上构建和部署它的最佳方式是什么?

目前,我使用Capistrano部署Packages,在虚拟环境中使用bash安装Packages,并使用puppet配置服务器,但我想采用更基于Python的解决方案。

我已经研究了一下zc.buildout,但我不清楚我能/应该用它做什么。

5个回答

2

取决于您的基础架构。我们只是使用 Debian 软件包和 Buildbot 来制作它们。

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

我强烈建议拥有适当的构建,并使用 BuildBot/Hudson 来构建软件包,因为使用 SCM 是违背目的并鼓励不良实践。


1

Paver是Python的一个类似于rake/make的工具。我不知道这是否符合您的要求,但我仍然没有找到与Python相当的puppet替代品...


0

0

pyinstall 看起来应该是一个更简单的解决方案。至少在打包Python代码和在虚拟环境中安装方面如此。我不知道有没有一种Pythonic的方法来进行服务器配置...


0

我使用Mercurial作为我的SCM系统,也用于部署。只需从另一个库克隆存储库,然后进行拉取/更新或提取即可使其保持最新。

我使用多个存储库实例 - 一个在开发服务器上,一个(或更多,根据情况)在我的本地机器上,一个在生产服务器上,以及一个“主”存储库,可供更广泛的互联网访问(尽管仅通过SSH)。

它唯一无法自动更新的是数据库(如果有变化),但是通过传入钩子,我可能也可以做到这一点。


如果您正在使用源代码管理工具,是否意味着代码仓库中有已压缩的文件?还包括构建好的 PO 文件吗?因此,在每次提交源代码后,提交者还必须重新构建二进制/派生文件并将它们一起提交吗? - Almad
1
实际上,文件的压缩/缓存版本是使用django-css在服务器上生成的。 - Matthew Schinckel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接