gpt4 book ai didi

python-3.x - Flask 应用程序的主管通过 virtualenv 激活 Gunicorn

转载 作者:行者123 更新时间:2023-12-03 15:59:43 24 4
gpt4 key购买 nike

我正在尝试使用 (1) nginx (2) gunicorn、(3) git 和 (4) 主管将 flask 应用程序部署到 ec2 实例。我已经设置了 nginx、git、gunicorn,但是我在编写主管脚本时遇到了麻烦。

我无法让主管在 virtualenv 的上下文中启动 gunicorn。

当我跑 gunicorn run:app在 virtualenv 之外它返回

ImportError: No module named flask

当我在 virtualenv 中运行相同的命令时,它工作得很好。

当我在 virtualenv 之外运行相同的命令但在虚拟 env 中指定 gunicorn(即 /var/www/sitename/env/bin/gunicorn run:app )时,它再次正常工作。

这是一个我无法弄清楚的问题,但我想如果我可以让主管在 virtualenv 中运行 gunicorn 就不会成为问题,但我也无法做到这一点。

我尝试在主管脚本中添加两个程序,一个用于启动虚拟环境,另一个用于 gunicorn,使用引号将两个命令添加在一起,其中一个类似的 SO 答案建议使用 &&结合激活 virtualenv 和启动 gunicorn,声明 environment=PATH=变量,以及许多其他选项;我只是无法让它工作。

我不知道我做错了什么或尝试什么;有谁知道我现在能做什么?

我正在运行 python3 - 我读到主管仅限于 v2,但其他人在回答中提到它只是一个任务管理器,应该无关紧要。

最佳答案

你走在正确的轨道上,但它比你做的更简单。要使用您提供的路径在主管下通过 gunicorn 运行名为 run with entry point app 的 Flask 应用程序:

/etc/supervisor/conf.d/run.conf

[program:run]
command = /var/www/sitename/env/bin/gunicorn run:app -b localhost:8000
directory = /var/www/sitename
user = siteuser

您可以提供环境参数来设置诸如生产模式之类的东西,但这就是您拥有 gunicorn 的虚拟环境版本所需的全部内容,如果它是 python 3 venv,则运行 python 3,在相同的虚拟环境中运行您的 flask 应用程序。

关于python-3.x - Flask 应用程序的主管通过 virtualenv 激活 Gunicorn,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44478638/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com