Django Gunicorn - Не удалось найти атрибут 'application'
У меня было приложение Django/Gunicorn, работающее просто отлично, но после обновления кода оно перестало работать из-за этой ошибки gunicorn. Я не думаю, что что-то изменилось в этой настройке, поэтому я в растерянности, почему оно не работает сейчас.
/etc/systemd/system/triform.service
[Unit]
Description=triform daemon
Requires=triform.socket
After=network.target
[Service]
User=django
Group=www-data
WorkingDirectory=/home/triform/django
ExecStart=/home/triform/django/venv/bin/gunicorn \
--access-logfile - \
--workers 3 \
--bind unix:/run/gunicorn.sock \
triform.wsgi:application
[Install]
WantedBy=multi-user.target
/etc/systemd/system/triform.socket
[Unit]
Description=triform socket
[Socket]
ListenStream=/run/triform.sock
[Install]
WantedBy=sockets.target
/home/triform/django/triform/wsgi.py
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'triform.settings')
application = get_wsgi_application()
in /home/triform/django/triform/settings.py:
WSGI_APPLICATION = 'triform.wsgi.application'
Мне пришлось обновить gunicorn до последней версии, а также мой Dockerfile до Python 3.9. Если вы работаете вне Docker, вы можете просто обновить его. Убедитесь, что вы обновили старые зависимости.
После обновления gunicorn и python проблема разрешилась.