首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >werkzeug + django + gunicorn: TypeError

werkzeug + django + gunicorn: TypeError
EN

Stack Overflow用户
提问于 2014-05-02 21:47:22
回答 1查看 993关注 0票数 1

我对werkzeug很陌生,当我尝试在安装和安装之后访问测试页面时,我得到了一个"TypeError:init()至少需要2个参数(1给定)“。Werkzeug确实提供了一个跟踪(见下文)。我已经看过那个和我的设置,但没有成功。

我安装了以下软件包:

代码语言:javascript
复制
django_extensions
werkzeug

在我的Django设置文件中添加了以下内容:

代码语言:javascript
复制
########## WERKZEUG/DJANGO EXTENSIONS
INSTALLED_APPS += (
    'django_extensions',
    'werkzeug',
)
MIDDLEWARE_CLASSES += (
    'werkzeug.debug.DebuggedApplication',
)
########## END WERKZEUG/DJANGO EXTENSIONS

并创建了一个dev_wsgi.py文件,我从我的gunicorn驱动程序脚本中调用该文件:

代码语言:javascript
复制
# 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时,我得到了以下跟踪:

代码语言:javascript
复制
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和Python2.7.6。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-03 12:04:30

werkzeug.debug.DebuggedApplication是WSGI中间件,而不是Django中间件。Django中间件期望__init__不需要参数,并将其添加到MIDDLEWARE_CLASSES中。WSGI中间件至少对__init__使用一个参数,即要包装的WSGI应用程序。您正在尝试同时使用它,但是修复很简单。从werkzeug.debug.DebuggedApplication设置中删除MIDDLEWARE_CLASSES

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23437475

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档