无法使用像gunicorn一样的服务运行Flask应用程序

时间:2017-08-21 12:24:06

标签: python linux flask service gunicorn

我尝试使用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

应用正在运行

有什么问题?

1 个答案:

答案 0 :(得分:1)

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

[服务]部分的示例如下:

[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了解详情。