Развертывание приложения Django на Heroku - нет модуля с именем 'django_project.wsgi

Я пытаюсь развернуть приложение django, но постоянно получаю эту ошибку:

ModuleNotFoundError: No module named 'django_project.wsgi'

На самом деле, вот полный журнал:

Вот мой Procfile

web: gunicorn django_project.wsgi:application --log-file - --log-level debug
python manage.py collectstatic --noinput
manage.py migrate

На settings.py у меня есть следующее:

ALLOWED_HOSTS = [
    '127.0.0.1',
    'django-blog-project-laila.herokuapp.com'
]
MIDDLEWARE = [
    ...
    'whitenoise.middleware.WhiteNoiseMiddleware',
    ...
]

Вот мой wsgi.py файл:

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

application = get_wsgi_application()

Вот структура моего проекта:

enter image description here

Я пробовал переместить Procfile в ту же папку, что и файл manage.py, но все то же самое.

Что я делаю неправильно? Любая помощь будет принята с благодарностью. Спасибо.

Добавьте runtime.txt с вашей версией python

runtime.txt

python-"your version"

и бежать

pip freeze > requirements.txt

Прежде всего, убедитесь, что ваши файлы Procfile, requirements.txt и runtime.txt находятся в той же папке, что и файл manage.py.

Ваше Procfile должно быть написано следующим образом: web:gunicorn django_project.wsgi --log-file -

Ваш runtime.txt должен читаться следующим образом: python-versionnumber. например, python-3.10.2

Ваш файл requirements.txt необходим, поскольку он помогает heroku разрешить и установить пакеты, используемые в вашем проекте. Запустите pip freeze > requirements.txt

Взяв Procfile в корневом каталоге (то есть на один уровень выше manage.py), я изменил его содержимое на следующее:

web: gunicorn --pythonpath django_project django_project.wsgi --log-file -

В соответствии с этим ответом.

Вот структура моего проекта, на случай, если было непонятно, где находится Procfile:

enter image description here

Теперь все работает как надо.

Я помечаю этот вопрос как решенный.

Вернуться на верх