Django 虚拟环境 - 没有名为 'gunicorn' 的模块
Django Virtual Environment - No module named 'gunicorn'
我已经遵循了本指南 (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
我已经遵循了本指南 (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