I'm trying to deploy a Django app using Heroku, but I'm running into the following error: "ImportError: No module named myproject.wsgi".
My project is configured as such:
my-project
│ Procfile
│ requirements.txt
│ runtime.txt
│ README.md
│
├───myproject
│ │ db.sqlite3
│ │ django
│ │ django._file_
│ │ import
│ │ manage.py
| |
│ ├───myproject
| | | wsgi.py
| | | settings.py
| | | urls.py
| | | _init_.py
| | |
| | ├───_pycache_
| |
│ ├───venv
...
My wgsi.py file is configured as such:
import os
import signal
import sys
import traceback
import time
from django.core.wsgi import get_wsgi_application
from whitenoise.django import DjangoWhiteNoise
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproject.settings")
application = get_wsgi_application()
application = DjangoWhiteNoise(application)
My Procfile contains the following:
web: gunicorn myproject.wsgi:application --log-file -
Why is this producing an error?
It seems your running directory is the outermost my-project
. Try to change your WSGI application path like gunicorn myproject.myproject.wsgi:application --log-file -
and see if the error changes.
I think putting your project in the root directory (i.e. removing the first myproject
directory and putting your manage.py
in my-project
directory) is a requirement for Heroku and will fix your problem.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With