我尝试使用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
应用正在运行
有什么问题?
答案 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了解详情。