【问题标题】:Can't run Flask app with gunicorn like service无法使用类似 gunicorn 的服务运行 Flask 应用程序
【发布时间】:2018-01-29 12:37:24
【问题描述】:

我正在尝试使用 Gunicorn 运行我的 Flask 应用程序来提供服务。 服务文件如下所示:

[Unit]
Description=metrofind
After=network.target

[Service]
User=ubuntu
Group=ubuntu
Restart=on-failure
WorkingDirectory=/home/ubuntu/geoMetroFinding/
ExecStart=/home/ubuntu/geoMetroFinding/flaskenv/bin/gunicorn -c /home/ubuntu/geoMetroFinding/gunicorn.conf -b 0.0.0.0:5000 main_flask:app

[Install]
WantedBy=multi-user.target

在它写入的日志错误文件中:

ImportError: No module named 'pandas'

ImportError: No module named 'main_flask'

但在虚拟环境中,所有必需的软件包都已安装。

当我在控制台中从目录“geoMetroFinding”本地运行此命令时:

  gunicorn -c gunicorn.conf -b 0.0.0.0:5000 main_flask:app

应用程序正在运行

怎么了?

【问题讨论】:

  • 运行程序的用户(例如服务用户)是否安装了所有软件包?您可以通过“su用户名”登录自行安装

标签: python linux flask service gunicorn


【解决方案1】:

您必须在服务文件中设置环境。

[Service] 部分的示例如下:

[Service]
User=ubuntu
Group=ubuntu
Restart=on-failure
WorkingDirectory=/home/ubuntu/geoMetroFinding/
Environment="PATH=/home/ubuntu/geoMetroFinding/flaskenv/bin"
ExecStart=/home/ubuntu/geoMetroFinding/flaskenv/bin/gunicorn -c /home/ubuntu/geoMetroFinding/gunicorn.conf -b 0.0.0.0:5000 main_flask:app

因此,您需要将环境添加到您的 PATH 中才能使其正常工作。

查看this great tutorial 了解更多信息。

【讨论】:

  • 感谢您的回答。我发现,我也没有在我的虚拟环境中正确安装软件包
猜你喜欢
  • 2022-01-15
  • 1970-01-01
  • 1970-01-01
  • 2022-01-18
  • 2016-07-20
  • 1970-01-01
  • 2020-04-16
  • 2019-10-04
  • 2012-02-15
相关资源
最近更新 更多