Развертывание приложения 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()
Вот структура моего проекта:
Я пробовал переместить 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:
Теперь все работает как надо.
Я помечаю этот вопрос как решенный.

