我正在尝试通过使用 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
应用正在运行
怎么了?
最佳答案
您必须在服务文件中设置环境。
[服务] 部分的示例如下:
[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了解更多信息。
关于python - 无法使用类似 gunicorn 的服务运行 Flask 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45797066/