Python werkzeug+;django+;gunicorn:类型错误

Python werkzeug+;django+;gunicorn:类型错误,python,django,gunicorn,werkzeug,Python,Django,Gunicorn,Werkzeug,我是werkzeug的新手,当我在安装和设置后尝试访问测试页面时,会遇到一个“TypeError:init()至少需要2个参数(给定1个)”。Werkzeug确实提供了回溯(见下文)。我已经看过了,我的设置没有成功 我已安装以下软件包: django_extensions werkzeug 将以下内容添加到我的Django设置文件中: ########## WERKZEUG/DJANGO EXTENSIONS INSTALLED_APPS += ( 'django_extensions

我是werkzeug的新手,当我在安装和设置后尝试访问测试页面时,会遇到一个“TypeError:init()至少需要2个参数(给定1个)”。Werkzeug确实提供了回溯(见下文)。我已经看过了,我的设置没有成功

我已安装以下软件包:

django_extensions
werkzeug
将以下内容添加到我的Django设置文件中:

########## WERKZEUG/DJANGO EXTENSIONS
INSTALLED_APPS += (
    'django_extensions',
    'werkzeug',
)
MIDDLEWARE_CLASSES += (
    'werkzeug.debug.DebuggedApplication',
)
########## END WERKZEUG/DJANGO EXTENSIONS
并创建了一个dev_wsgi.py文件,我从gunicorn驱动程序脚本调用该文件:

# basic wsgi.py
import os

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'my-site.settings.dev')

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

# Werkzeug-specific
import django.views.debug

def null_technical_500_response(request, exc_type, exc_value, tb):
    raise exc_type, exc_value, tb
django.views.debug.technical_500_response = null_technical_500_response

# apply Werkzeug WSGI middleware
from werkzeug.debug import DebuggedApplication
application = DebuggedApplication(application, evalex=True)
但现在,当我查看测试URL时,我得到以下回溯:

File "/python2-venv/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 187, in __call__
self.load_middleware()
File "/python2-venv/lib/python2.7/site-packages/django/core/handlers/base.py", line 49, in load_middleware
mw_instance = mw_class()
TypeError: __init__() takes at least 2 arguments (1 given)

在dev_wsgi.py中注释掉Werkzeug特定的行可以正确显示我的测试页面。我使用的是Werkzeug 0.9.4、django_extensions 1.3.3、django 1.6.4和Python 2.7.6。

Werkzeug.debug.debugedApplication
是WSGI中间件而不是django中间件。Django中间件不需要
\uuuuu init\uuuu
的参数,而是添加到
中间件类中。WSGI中间件将至少一个参数带到
\uuuu init\uuu
,该参数是要包装的WSGI应用程序。您正试图将其用作两者,但修复方法很简单。从
中间件类
设置中删除
werkzeug.debug.DebuggedApplication

我还尝试禁用Django调试工具栏并在本地(作为本地主机)和通过DNS运行。再次感谢。我为一个pull请求编写了一些文档。