ModuleNotFound backend.wsgi
Я пытаюсь развернуть свое приложение django на Heroku и столкнулся с этой проблемой, и она меня очень раздражает.
Процесс развертывания прошел хорошо, у меня был мой проект на GitHub, далее я подключил его к Heroku и все такое.
Сначала я столкнулся с проблемой несовместимости gunicorn с Windows, поэтому я решил попробовать Waitress, и он сработал. Я ввел свои изменения, и сборка прошла успешно. Я попытался открыть свое приложение и получил следующую ошибку:
2022-08-10T15:57:50.867340+00:00 app[web.1]:
2022-08-10T15:57:50.867340+00:00 app[web.1]: There was an exception (ModuleNotFoundError) importing your module.
2022-08-10T15:57:50.867341+00:00 app[web.1]:
2022-08-10T15:57:50.867341+00:00 app[web.1]: It had these arguments:
2022-08-10T15:57:50.867341+00:00 app[web.1]: 1. No module named 'backend.wsgi'
2022-08-10T15:57:50.867341+00:00 app[web.1]:
2022-08-10T15:57:51.005980+00:00 heroku[web.1]: Process exited with status 1
2022-08-10T15:57:51.467637+00:00 heroku[web.1]: State changed from starting to crashed
2022-08-10T15:58:13.398128+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=itpartsstore-azhdan.herokuapp.com request_id=912e8c5a-2482-4851-b31f-8bdf03472e92 fwd="85.187.39.220" dyno= connect= service= status=503 bytes= protocol=https
2022-08-10T15:58:13.618890+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=itpartsstore-azhdan.herokuapp.com request_id=89daee3f-8122-4892-86d5-c683f77d4990 fwd="85.187.39.220" dyno= connect= service= status=503 bytes= protocol=https
Это мой Procfile:
web: waitress-serve --port=$PORT backend.wsgi:application
Мои требования:
asgiref==3.5.2
autopep8==1.6.0
certifi==2022.6.15
charset-normalizer==2.1.0
Django==4.0.6
django-cors-headers==3.13.0
djangorestframework==3.13.1
djangorestframework-simplejwt==5.2.0
docopt==0.6.2
gunicorn==20.1.0
idna==3.3
Pillow==9.2.0
pipreqs==0.4.11
psycopg2==2.9.3
psycopg2-binary==2.9.3
pycodestyle==2.8.0
PyJWT==2.4.0
pytz==2022.1
requests==2.28.1
sqlparse==0.4.2
toml==0.10.2
tzdata==2022.1
urllib3==1.26.11
waitress==2.1.2
yarg==0.1.9
Я попробовал, чтобы мой Procfile выглядел следующим образом:
web: waitress-serve --port=$PORT backend.backend.wsgi:application
потому что я где-то читал, что я должен найти точное местоположение файла wsgi.py в проекте.
Вот как выглядит структура моего проекта, и когда я изменил Procfile, у меня была та же ошибка, но на этот раз он не смог найти модуль "backend.settings".
Я не понимаю, что делать, чтобы исправить это. Это специфическая ошибка Heroku или я что-то не так сделал в своем проекте?