Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

uWSGI + Django + Python: no module named uwsgi

I am trying to setup uwsgi for my Django project. It runs fine with

./manage.py runserver 0.0.0.0:9010

But when I try

 uwsgi --http :9010 --chdir /home/user/appname --module wsgi --wsgi-file /home/user/appname/appname/wsgi.py 

I get

ImportError: No module named wsgi

What I am doing wrong ?

Here is the full log:

uWSGI http bound on :9010 fd 4
spawned uWSGI http 1 (pid: 1900)
uwsgi socket 0 bound to TCP address 127.0.0.1:42684 (port auto-assigned) fd 3
Python version: 2.7.9 (default, Mar  1 2015, 13:01:26)  [GCC 4.9.2]
*** Python threads support is disabled. You can enable it with --enable-threads ***
Python main interpreter initialized at 0x1c17310
your server socket listen backlog is limited to 100 connections
your mercy for graceful operations on workers is 60 seconds
mapped 72760 bytes (71 KB) for 1 cores
*** Operational MODE: single process ***
ImportError: No module named wsgi
unable to load app 0 (mountpoint='') (callable not found or import error)
Traceback (most recent call last):
  File "/home/robert/surmaroute/surmaroute/wsgi.py", line 13, in <module>
    from django.core.wsgi import get_wsgi_application
ImportError: No module named django.core.wsgi
unable to load app 0 (mountpoint='') (callable not found or import error)
*** no app loaded. going in full dynamic mode ***
*** uWSGI is running in multiple interpreter mode ***
spawned uWSGI worker 1 (and the only) (pid: 1899, cores: 1)
like image 675
thms0 Avatar asked Jan 14 '16 21:01

thms0


1 Answers

The issue is that your app does not have a module named uwsgi. You change the directory to /home/user/appname but it looks like the actual module would be appname.uwsgi since the uwsgi.py file lives within /home/user/appname/appname/uwsgi.py.

Typically though, you don't need to specify both --wsgi-file and --module so I would either do

uwsgi --http :9010 --chdir /home/user/appname --wsgi-file /home/user/appname/appname/wsgi.py

or

uwsgi --http :9010 --chdir /home/user/appname --module appname.uwsgi

I personally prefer the second.

like image 135
Suever Avatar answered Oct 03 '22 10:10

Suever