Gunicorn Ошибка: ModuleNotFoundError - Нет модуля с именем 'weatherapp.wsgi'
У меня возникли проблемы с развертыванием моего Django-приложения на Heroku с помощью Gunicorn, и мне бы очень пригодилась помощь.
Вот некоторая справочная информация о моем проекте:
Название проекта: weatherapp
Procfile
web: gunicorn weatherapp.wsgi:application --log-file -
wsgi.py
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'weatherapp.settings')
application = get_wsgi_application()
Сообщение об ошибке
Traceback (most recent call last): File "/app/.heroku/python/lib/python3.12/site-packages/gunicorn/arbiter.py", line 609, in spawn_worker ... ModuleNotFoundError: No module named 'weatherapp.wsgi'
Релевантный код в settings.py
WSGI_APPLICATION = 'content_aggregator.wsgi.application'
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'),)
django_heroku.settings(locals())
MEDIA_URL = '/imgs/'
MEDIA_ROOT = BASE_DIR / 'imgs'
Похоже, что Gunicorn не может найти модуль weatherapp.wsgi во время процесса развертывания.
Я дважды проверил структуру своего проекта, и, похоже, все в порядке. Не мог бы кто-нибудь подсказать, что может быть причиной этой проблемы и как ее решить?
Любая помощь будет очень признательна. Заранее спасибо!
Запустили сервер Gunicorn командой gunicorn weatherapp.wsgi:application --log-file -.
Но никаких изменений
Причина может быть в том, что в отличие от режима dev ваш терминал не находится в папке вашего проекта. Я не могу объяснить это хорошо, но этот procfile может попытаться запустить приложение из вашего домашнего каталога - но в нем нет weatherapp!
Вы можете проверить это, создав файл print_cwd.py:
import os
print("Current working directory:", os.getcwd())
и затем внутри вашего procfile:
web: python /full/path/to/print_cwd.py
Укажите здесь полный путь, иначе он не найдет и файл print_cwd.py.
Чтобы заставить ваш gunicorn работать, вы также можете просто передать полный путь! procfile
web: gunicorn /full/path/to/weatherapp.wsgi:application --log-file -