Reputation: 1339
I am trying to follow the steps in this guide: http://uwsgi-docs.readthedocs.org/en/latest/tutorials/Django_and_nginx.html
Before I even get to the nginx part I am trying to make sure that uWSGI works correctly
my folder structure is srv/www/domain/projectdatabank/
the project databank folder contains my manage.py file
my wsgi.py file looks like this:
import os
import sys
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
do you need to see my settings.py?
i get the following error when i point myself to the browser:
-- no python application found, check your startup logs for errors ---
[pid: 10165|app: -1|req: -1/1] 66.56.35.151 () {38 vars in 681 bytes} [Tue Jul 9 18:19:46 2013] GET /admin/ => generated 21 bytes in 0 msecs (HTTP/1.1 500) 1 headers in 57 bytes (0 switches on core 0)
--- no python application found, check your startup logs for errors ---
[pid: 10165|app: -1|req: -1/2] 66.56.35.151 () {36 vars in 638 bytes} [Tue Jul 9 18:19:49 2013] GET / => generated 21 bytes in 0 msecs (HTTP/1.1 500) 1 headers in 57 bytes (0 switches on core 0)
Now when I check my uWGI log it is just the same as above.
Upvotes: 50
Views: 98592
Reputation: 566
Check if u deleted any __init__.py
file from the Django apps. As django uses them to know which folders are apps, so they are kind of important.
Upvotes: 0
Reputation: 1239
Check out my blog post on deploying Django behind uwsgi http://blog.johannesklug.de/2012/11/27/deploying-django-behind-nginx-with-uwsgi-and-virtualenv/. I created an ini-File to setup uwsgi, which points to the app callable with the parameter module=project.wsgi:application
.
The whole file reads something like this:
(env)[project@host ~]$ cat uwsgi.ini
[uwsgi]
# path to where you put your project code
chdir=/home/project/project
# python path to the wsgi module, check if you have one
module=project.wsgi:application
# this switch tells uwsgi to spawn a master process,
# that will dynamically spawn new child processes for
# server requests
master=True
# uwsgi stores the pid of your master process here
pidfile=/home/project/master.pid
vacuum=True
# path to your virtual environment
home=/home/project/env/
# path to log file
daemonize=/home/project/log
# this is where you need to point nginx to,
# if you chose to put this in project home make
# sure the home dir is readable and executable by
# nginx
socket=/tmp/uwsgi.sock
### SEE UPDATE NOTICE FOR THIS ONE
env = DJANGO_SETTINGS_MODULE=project.settings
Please note that I'm using virtualenv.
You might also be missing the lines
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project.settings")
in your wsgi.py
Upvotes: 14
Reputation: 4996
In uwsgi.ini
Make sure you have set the right module
.
[uwsgi]
module = yourapp.wsgi:application
...
Upvotes: 0
Reputation: 487
I got this error because my /etc/uwsgi/vassals/ ini file for the site I was running had the word "module" misspelled as "modeule". Check that file carefully if you see htis ereror.
Upvotes: 0
Reputation: 1942
For others debugging this same error, there is another possibility: an exception is being thrown by your uwsgi.py
. To test this, open a django shell in your app directly with python manage.py shell
and import your uwsgi.py
(use the same path as in your uwsgi.ini
).
Upvotes: 50
Reputation: 1339
I have solved this
in my original command line did not include full path to the wsgi.py file to run uWSGI
uwsgi --http :8000 --chdir /srv/www/databankinfo.com/projectdatabank/ --wsgi-file wsgi.py
to this
uwsgi --http :8000 --chdir /srv/www/databankinfo.com/projectdatabank/ --wsgi-file full/path/wsgi.py
and it worked
Upvotes: 54