gpt4 book ai didi

python - werkzeug + django + Gunicorn : TypeError

转载 作者:太空宇宙 更新时间:2023-11-03 18:24:42 25 4
gpt4 key购买 nike

我是 werkzeug 新手,当我在安装和设置后尝试访问测试页面时,收到“TypeError: init()takes at least 2 argument (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.DebuggedApplication 是 WSGI 中间件,而不是 Django 中间件。 Django 中间件期望 __init__ 没有参数,并添加到 MIDDLEWARE_CLASSES 中。 WSGI 中间件至少将一个参数传递给 __init__,这是要包装的 WSGI 应用程序。您正在尝试同时使用它,但解决方法很简单。从 MIDDLEWARE_CLASSES 设置中删除 werkzeug.debug.DebuggedApplication

关于python - werkzeug + django + Gunicorn : TypeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23437475/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com