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

5

我正在尝试为我的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)

这会导致问题,因为显然您的应用程序没有一个名为 wsgi 的模块。这是 uwsgi 尝试导入以查找您的应用程序的模块。根据上面的结构,您可能需要像 --module appname.wsgi 这样的东西,但是您甚至可能不需要它,因为您已经指定了 --wsgi-file - Suever
1个回答

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

或者

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

我个人更喜欢第二个。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接