Trying to deploy my app with this tutorial. Have a ModuleNotFoundError: No module named 'radio.wsgi'
message.
2019-08-21T08:08:21.409841+00:00 app[web.1]: __import__(module)
2019-08-21T08:08:21.409849+00:00 app[web.1]: ModuleNotFoundError: No module named 'radio.wsgi'
2019-08-21T08:08:21.409960+00:00 app[web.1]: [2019-08-21 08:08:21 +0000] [10] [INFO] Worker exiting (pid: 10)
2019-08-21T08:08:21.441211+00:00 app[web.1]: [2019-08-21 08:08:21 +0000] [4] [INFO] Shutting down: Master
2019-08-21T08:08:21.441415+00:00 app[web.1]: [2019-08-21 08:08:21 +0000] [4] [INFO] Reason: Worker failed to boot.
In some other questions people recomends python manage.py run_gunicorn
but I have Unknown command: 'run_gunicorn'
Procfile:
web: gunicorn radio.wsgi --log-file -
wsgi.py
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'radio.settings')
application = get_wsgi_application()
In only those files WSGI is mentioned.
requirements.txt
dj-database-url==0.5.0
Django==2.2.4
gunicorn==19.9.0
lxml==4.4.1
psycopg2-binary==2.8.3
pytz==2019.2
sqlparse==0.3.0
whitenoise==4.1.3
This is project structure
├── radio
│ ├── db.sqlite3
│ ├── manage.py
│ ├── player
│ ├── radio
│ │ ├── __init__.py
│ │ ├── __pycache__
│ │ ├── settings.py
│ │ ├── urls.py
│ │ └── wsgi.py
│ ├── setup.py
│ └── static
├── README.md
├── .gitignore
├── requirements.txt
├── runtime.txt
└── Procfile
Heroku expects Procfile
to be in the project root. It is easiest to deploy a Django app if manage.py
is in the project root as well. For example, if your project layout was:
├── db.sqlite3
├── manage.py
├── player
├── radio
│ ├── __init__.py
│ ├── __pycache__
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── setup.py
├── static
├── README.md
├── .gitignore
├── requirements.txt
├── runtime.txt
└── Procfile
then you can run:
web: gunicorn radio.wsgi
In your case, your Django project is in the radio
directoy. If you don't want to change the project layout, then you need to add radio
to the python path so that python imports work:
web: gunicorn --pythonpath radio radio.wsgi
After login from terminal using heroku login
by downloading Heroku CLI, you can deploy on heroku
using git
by following:
git init
git add .
heroku create <app_name> --region <region_name>
git commit -am "SOME MESSAGE"
heroku config:set DEBUG_COLLECTSTATIC=1
heroku ps:scale web=1 // (optional)
git push heroku master
The ideal project structure shuold be like this...
radio
├── db.sqlite3
├── manage.py
├── player
├── radio
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── setup.py
├── static
├── README.md
├── requirements.txt
├── runtime.txt
└── Procfile
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