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 -
Вернуться на верх