繁体   English   中英

Gunicorn.service 无法读取 Python3.6 库

[英]Gunicorn.service unable to read Python3.6 library

我正在 ubuntu 服务器上的 nginx+gunicorn 上部署 flask 应用程序。

Gunicorn 命令正确运行 flask 应用程序。 以下是命令

gunicorn3 --bind=unix:/tmp/gunicorn.sock --workers=4 app:app

当我尝试编写服务时,它失败并出现错误

gunicorn3.service - gunicorn3 daemon for /var/www/html/my_app/app.py
   Loaded: loaded (/etc/systemd/system/gunicorn3.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Wed 2020-06-03 13:26:57 IST; 6s ago
  Process: 19575 ExecStart=/usr/bin/gunicorn3 --bind=unix:/tmp/gunicorn3.sock --workers=4 app:app (code=exited, status=3)
 Main PID: 19575 (code=exited, status=3)

Jun 03 13:26:57 my-server gunicorn3[19575]:   File "/usr/lib/python3/dist-packages/gunicorn/util.py", line 377, in import_app
Jun 03 13:26:57 my-server gunicorn3[19575]:     _import_(module)
Jun 03 13:26:57 my-server gunicorn3[19575]:   File "/var/www/html/my_app/app.py", line 1, in <module>
Jun 03 13:26:57 my-server gunicorn3[19575]:     from flask import Flask, render_template, flash, request, url_for, redirect, session, flash, g, jsonify, send_file, make_response, send_from_directory
Jun 03 13:26:57 my-server gunicorn3[19575]: ModuleNotFoundError: No module named 'flask'
Jun 03 13:26:57 my-server gunicorn3[19575]: [2020-06-03 13:26:57 +0530] [19577] [INFO] Worker exiting (pid: 19577)
Jun 03 13:26:57 my-server gunicorn3[19575]: [2020-06-03 13:26:57 +0530] [19575] [INFO] Shutting down: Master
Jun 03 13:26:57 my-server gunicorn3[19575]: [2020-06-03 13:26:57 +0530] [19575] [INFO] Reason: Worker failed to boot.
Jun 03 13:26:57 my-server systemd[1]: gunicorn3.service: Main process exited, code=exited, status=3/NOTIMPLEMENTED
Jun 03 13:26:57 my-server systemd[1]: gunicorn3.service: Failed with result 'exit-code'.

当应用程序通过 python2.7 而不是 3.6 运行时会发生错误。

服务文件 /etc/systemd/system/gunicorn3.service 是

[Unit]
Description=gunicorn3 daemon for /var/www/html/my_app/app.py
After=network.target

[Service]
User=root
Group=www-data
RuntimeDirectory=gunicorn3
WorkingDirectory=/var/www/html/my_app/
ExecStart=/usr/bin/gunicorn3 --bind=unix:/tmp/gunicorn3.sock --workers=4 app:app
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID

[Install]
WantedBy=multi-user.target

当我运行直接 gunicorn3 命令时应用程序运行正常,但在创建服务时失败

您的问题似乎是您的gunicorn命令指向不同的 Python 版本。


当我运行直接 gunicorn3 命令时应用程序运行正常,但在创建服务时失败

尝试:

ExecStart=/usr/bin/env gunicorn3 --bind=unix:/tmp/gunicorn3.sock --workers=4 app:app

更干净的解决方案。

python3 -m venv venv
source venv/bin/activate
python -m pip install -r requirements.txt

ExecStart=/path/to/your/venv/bin/gunicorn --bind=unix:/tmp/gunicorn3.sock --workers=4 app:app

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM