【问题标题】:How to deploy a Pyramid app using pserve without installation?如何在不安装的情况下使用 pserve 部署 Pyramid 应用程序?
【发布时间】:2023-03-28 03:22:01
【问题描述】:

我是 Pyramid 的初学者。

我想将 Pyramid 部署到我的生产服务器。 我有一个使用 Capistrano 的部署脚本来执行此操作。

set :pid_path, "/var/lib/#{application}"
set :log_path, "/var/log/#{application}"

namespace :deploy do

    task :restart, :roles => :app do
    end

    task :finalize_update, :roles => :app do
        run "cd #{release_path} && python setup.py build"
        %w[ 5000 5001 ].each do |port|
            run "if [ -f #{pid_path}/#{port}.pid ]; then paster serve --stop-daemon --pid-file=#{pid_path}/#{port}.pid; fi"
            run "paster serve --daemon --pid-file=#{pid_path}/#{port}.pid --log-file=#{log_path}/paster.log #{release_path}/production.ini http_port=#{port}"
        end
    end

end

但是如果没有安装输入'sudo python setup.py install',它就无法工作。 如果我编写代码来执行此操作,它可能会起作用,但由于权限,我不想这样做。

有人有什么建议吗?

【问题讨论】:

    标签: python pyramid paster


    【解决方案1】:

    好的,最好的办法是设置一个 virtualenv ,激活它,然后在 virtualenv 中安装应用程序并从那里运行它:-)

    除了使用 setuptools/distutils 安装到本地用户文件夹之外,还可以使用 easy_install 的 --user 参数安装到本地用户文件夹中,如下所述:http://docs.python.org/install/index.html

    但是说真的,使用 virtualenv :-)

    【讨论】:

    • 谢谢!我不知道这个选项。我考虑使用 virtualenv。 (我已经知道了,但我不想使用它。)我应该重写部署脚本。
    【解决方案2】:

    要么将应用程序安装到 virtualenv 中,要么使用 python setup.py develop 将您的项目链接到 python 环境(virtualenv 或系统取决于您调用的 python)。这通常比python setup.py install 更可取,因为它将您的源代码保存在可管理的位置,并且不需要您担心清单文件以确保您的静态资源位于已安装的捆绑包中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-28
      • 1970-01-01
      • 1970-01-01
      • 2019-08-27
      • 1970-01-01
      相关资源
      最近更新 更多