【问题标题】:How to build and deploy Python web applications如何构建和部署 Python Web 应用程序
【发布时间】:2010-09-15 01:05:11
【问题描述】:

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

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

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

【问题讨论】:

    标签: python deployment


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      Paver 是一个类似于 python 的 rake/make 工作。我不知道这是不是你要找的东西,还没有找到任何相当于 python puppet 的东西......

      【讨论】:

        【解决方案3】:

        SCons 会做你想做的事吗?

        http://www.scons.org/

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            【解决方案5】:

            我使用 Mercurial 作为我的 SCM 系统,也用于部署。只需从另一个仓库克隆存储库,然后拉取/更新或获取即可更新它。

            我使用存储库的多个实例 - 一个在开发服务器上,一个(或多个,取决于具体情况)在我的本地计算机上,一个在生产服务器上,以及一个可用于更大 Internet 的“主”存储库(虽然只能通过 SSH)。

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

            【讨论】:

            • 如果您使用的是 SCM,是否意味着您在存储库中有缩小文件?也建立 PO 文件?那么在每次源代码提交之后,提交者还必须重新构建二进制/派生文件并提交它们?
            • 实际上,文件的缩小/缓存版本是在服务器上生成的,使用 django-css。
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2010-10-12
            • 2013-02-14
            • 1970-01-01
            • 2017-10-14
            • 2014-01-07
            相关资源
            最近更新 更多