我遵循了这个指南(https://www.digitalocean.com/community/tutorials/how-to-set-up-django-with-postgres-nginx-and-gunicorn-on-ubuntu-16-04),但是当我试图通过gunicorn服务文件(/etc/systemd/system/gunicorn.service)运行gunicorn时,我目前看到以下内容:
Oct 04 11:30:22 ukgcdeploy01 gunicorn[8095]: File "/opt/envs/automation-console-env/bin/gunicorn", line 5, in <module>
Oct 04 11:30:22 ukgcdeploy01 gunicorn[8095]: from gunicorn.app.wsgiapp import run
Oct 04 11:30:22 ukgcdeploy01 gunicorn[8095]: ModuleNotFoundError: No module named 'gunicorn'
gunicorn。Service文件包含以下内容:
[Unit]
Description=gunicorn daemon
After=network.target
[Service]
User=root
Group=www-data
WorkingDirectory=/opt/envs/automation-console-env
ExecStart=/opt/envs/automation-console-env/bin/gunicorn --timeout 600 --log-level debug --error-log /var/log/automation-console-env_error.log --access-logfile /var/log/automation-console-env_access.log --workers 3 --bind unix:/opt/envs/automation-console-env/automation-console-env.sock django_forms.wsgi:application
[Install]
WantedBy=multi-user.target
手动运行gunicorn工作正常:
gunicorn—bind 0.0.0.0:8000 myproject.wsgi
在我不得不将Python版本从3.5.2升级到3.9之前,这是以前工作的,由于一些问题,我最终不得不重新创建虚拟环境,所以我不认为这一定是服务文件的问题,而是我的Python/Gunicorn安装。
如果有人能提供一些建议,我将不胜感激:)
是否存在automation-console-env
环境?如果有,那里安装了gunicorn吗?在任何一种情况下,由于它在命令行上作为gunicorn ...
工作,因此您应该能够使用此安装。
which gunicorn
然后改变你的systemd单元文件指向这个可执行文件。
似乎您要么定义错误的路径,要么您可能面临gunicorn.service
中的权限问题。
首先尝试使用systemctl enable gunicorn.service
启用服务。如果它不工作,然后尝试以下操作:
编辑gunicorn.service
如下:
:--bind unix:/opt/envs/automation-console-env/automation-console-env.sock django_forms.wsgi:application
:--bind unix:/opt/envs/automation-console-env/automation-console-env.sock django_forms.wsgi