Django - Ни один модуль с именем 'myblog.wsgi' при использовании gunicorn - PullRequest
1 голос
/ 31 января 2020

Каталог моего проекта:

yiling_blog
├── LICENSE
├── README.md
├── myblog
│   ├── db.sqlite3
│   ├── manage.py
│   ├── myblog
│   │   ├── __init__.py
│   │   ├── __pycache__
│   │   ├── admin.py
│   │   ├── admin_config.py
│   │   ├── asgi.py
│   │   ├── migrations
│   │   ├── models.py
│   │   ├── settings.py
│   │   ├── static
│   │   ├── urls.py
│   │   ├── views.py
│   │   └── wsgi.py
│   ├── statics
│   └── templates
├── requirements.txt
└── venv

Проблема в том, что я могу просто использовать команду /home/ubuntu/yiling_blog/venv/bin/gunicorn --bind 0.0.0.0:8000 myblog.wsgi:application после запуска cd /home/ubuntu/yiling_blog/myblog, но она не работает в других каталогах.

Но мне нужно поместить эту команду в gunicorn.conf, чтобы supervisorctl работал в фоновом режиме, она не поддерживает cd /home/ubuntu/yiling_blog/myblog|/home/ubuntu/yiling_blog/venv/bin/gunicorn --bind 0.0.0.0:8000 myblog.wsgi:application

Что мне нужно сделать, чтобы решить эту проблему?

Связанные файлы:

wsgi.py:

import os

from django.core.wsgi import get_wsgi_application

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myblog.settings')

application = get_wsgi_application()

Конфигурация wsgi в settings.py:

WSGI_APPLICATION = 'myblog.wsgi.application'

gunicorn.conf

[program:gunicorn]
directory=/homg/ubuntu/yiling_blog/myblog
## command will be change to /home/ubuntu/yiling_blog/venv/bin/gunicorn --workers 3 --bind unix:/home/ubuntu/yiling_blog/app.sock myblog.wsgi:application

command=/home/ubuntu/yiling_blog/venv/bin/gunicorn  --bind 0.0.0.0:8000  myblog.wsgi:application
autostart=true
autorestart=true
stderr_logfile=/var/log/gunicorn/gunicorn.err.log
stdout_logfile=/var/log/gunicorn/gunicorn.out.log

[group:guni]
programs:gunicorn

[unix_http_server]
file=/home/ubuntu/yiling_blog/app.sock
chmod=0766
...