uWSGI + Django + Python:没有名为uwsgi的模块

时间:2016-01-14 21:55:09

标签: python django uwsgi

我正在尝试为我的Django项目设置uwsgi。

运行良好
./manage.py runserver 0.0.0.0:9010

但是当我尝试

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

我得到了

ImportError: No module named wsgi

我做错了什么?

这是完整的日志:

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)

1 个答案:

答案 0 :(得分:5)

问题是您的应用没有名为uwsgi的模块。您将目录更改为/home/user/appname,但实际模块看起来像appname.uwsgi,因为uwsgi.py文件位于/home/user/appname/appname/uwsgi.py内。

通常情况下,您不需要同时指定--wsgi-file--module,所以我会这样做

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

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

我个人更喜欢第二种。