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

thm*_*ms0 3 python django uwsgi

我正在尝试为我的Django项目设置uwsgi.它运行良好

./manage.py runserver 0.0.0.0:9010
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试

 uwsgi --http :9010 --chdir /home/user/appname --module wsgi --wsgi-file /home/user/appname/appname/wsgi.py 
Run Code Online (Sandbox Code Playgroud)

我明白了

ImportError: No module named wsgi
Run Code Online (Sandbox Code Playgroud)

我做错了什么?

这是完整的日志:

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)
Run Code Online (Sandbox Code Playgroud)

Sue*_*ver 6

问题是您的应用程序没有名为的模块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
Run Code Online (Sandbox Code Playgroud)

要么

uwsgi --http :9010 --chdir /home/user/appname --module appname.uwsgi
Run Code Online (Sandbox Code Playgroud)

我个人更喜欢第二个.