Django 和 Python + uWSGI
Posted
技术标签:
【中文标题】Django 和 Python + uWSGI【英文标题】:Django and Python + uWSGI 【发布时间】:2011-04-16 02:25:58 【问题描述】:使用 instruction 我尝试连接 Python + uWSGI。
我在文件夹 /home/sanya/django/pasteurl 中创建了默认项目。 但是,在我得到的浏览器中打开它
uWSGI Error
wsgi application not found
日志包含以下内容:
binding on TCP port: 9001
your server socket listen backlog is limited to 64 connections
added /home/sanya/django/pasteurl to pythonpath.
initializing hooks...done.
...getting the applications list from the 'django' module...
uwsgi.applications dictionary is not defined, trying with the "applications" one...
applications dictionary is not defined, trying with the "application" callable.
static applications not defined, you have to use the dynamic one...
spawned uWSGI master process (pid: 7637)
spawned uWSGI worker 1 (pid: 7646)
spawned uWSGI worker 2 (pid: 7647)
spawned uWSGI worker 3 (pid: 7648)
spawned uWSGI worker 4 (pid: 7649)
文件/home/sanya/django/pasteurl/django.wsgi
import os
import django.core.handlers.wsgi
# init django settings
os.environ['DJANGO_SETTINGS_MODULE'] = 'pasteurl.settings'
# define wsgi app
application = django.core.handlers.wsgi.WSGIHandler()
# mount this application at the webroot
# applications = '/': 'application'
我意识到,这个应用程序字典有问题
【问题讨论】:
【参考方案1】:FWIW,查看 source code,从第 1997 行开始,我们看到如果 uWSGI 找不到 applications
字典,它会发出您收到的错误消息的确切序列。
查看您的django.wsgi
文件,我们看到该行,
`applications = '/': 'application'
被注释掉。我想知道我们能做些什么;)
顺便说一句,我使用google 找到了源代码。谷歌搜索引号中的错误消息通常是一件好事。在我点击那个链接并意识到我很幸运能够直接从谷歌找到源代码(这种情况越来越多)之后,我按下 Ctrl-F 来“在页面上查找”并在我的浏览器中重新输入错误消息在页面搜索工具上直接引导我到相关行。
【讨论】:
我把它注释掉了,因为没有任何改变。我想我什么都试过了。源代码也没有帮助我。【参考方案2】:同样的问题,在此备注:
uWSGI Error
wsgi application not found
检查 nginx 配置文件:
uwsgi_param UWSGI_CHDIR somepath
wsgi_param UWSGI_SCRIPT somefile
确保:
1.sompath/somefile.py 必须存在
2.extent文件名必须使用“.py”
3.不要使用全名,如“somefile.py”,或同样的错误发生,并且在uwsgi日志文件中有错误日志:
ImportError: No module named py
【讨论】:
以上是关于Django 和 Python + uWSGI的主要内容,如果未能解决你的问题,请参考以下文章
python+django MTV框架 和php MVC框架的不同之处