Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python django 1.10中的自定义设置和wsgi给了我一个错误_Python_Django_Wsgi - Fatal编程技术网

Python django 1.10中的自定义设置和wsgi给了我一个错误

Python django 1.10中的自定义设置和wsgi给了我一个错误,python,django,wsgi,Python,Django,Wsgi,我在运行服务器的自定义设置中遇到此错误: salahaddin@TulipanROG  ~/Proyectos/tiempoturco/tiempoturco  (tiempoturco)  ./manage.py runserver

我在运行服务器的自定义设置中遇到此错误:

 salahaddin@TulipanROG  ~/Proyectos/tiempoturco/tiempoturco  (tiempoturco)  ./manage.py runserver                                                                                                                                            ✓  640  23:22:06 
Performing system checks...

System check identified no issues (0 silenced).
June 19, 2016 - 23:22:07
Django version 1.10a1, using settings 'tiempoturco.settings.dev'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x7f288d67f2f0>
Traceback (most recent call last):
  File "/home/salahaddin/Proyectos/tiempoturco/lib/python3.5/site-packages/django/utils/autoreload.py", line 226, in wrapper
    fn(*args, **kwargs)
  File "/home/salahaddin/Proyectos/tiempoturco/lib/python3.5/site-packages/django/core/management/commands/runserver.py", line 142, in inner_run
    handler = self.get_handler(*args, **options)
  File "/home/salahaddin/Proyectos/tiempoturco/lib/python3.5/site-packages/django/contrib/staticfiles/management/commands/runserver.py", line 27, in get_handler
    handler = super(Command, self).get_handler(*args, **options)
  File "/home/salahaddin/Proyectos/tiempoturco/lib/python3.5/site-packages/django/core/management/commands/runserver.py", line 64, in get_handler
    return get_internal_wsgi_application()
  File "/home/salahaddin/Proyectos/tiempoturco/lib/python3.5/site-packages/django/core/servers/basehttp.py", line 49, in get_internal_wsgi_application
    return import_string(app_path)
  File "/home/salahaddin/Proyectos/tiempoturco/lib/python3.5/site-packages/django/utils/module_loading.py", line 20, in import_string
    module = import_module(module_path)
  File "/home/salahaddin/Proyectos/tiempoturco/lib/python3.5/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 986, in _gcd_import
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 662, in exec_module
  File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
  File "/home/salahaddin/Proyectos/tiempoturco/tiempoturco/tiempoturco/wsgi.py", line 16, in <module>
    application = get_wsgi_application()
  File "/home/salahaddin/Proyectos/tiempoturco/lib/python3.5/site-packages/django/core/wsgi.py", line 14, in get_wsgi_application
    return WSGIHandler()
  File "/home/salahaddin/Proyectos/tiempoturco/lib/python3.5/site-packages/django/core/handlers/wsgi.py", line 153, in __init__
    self.load_middleware()
  File "/home/salahaddin/Proyectos/tiempoturco/lib/python3.5/site-packages/django/core/handlers/base.py", line 79, in load_middleware
    mw_instance = middleware(handler)
TypeError: object() takes no parameters
以及我的manage.py代码:

#!/usr/bin/env python
import os
import sys

if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "tiempoturco.settings.dev")
    try:
        from django.core.management import execute_from_command_line
    except ImportError:
        # The above import may fail for some other reason. Ensure that the
        # issue is really that Django is missing to avoid masking other
        # exceptions on Python 2.
        try:
            import django
        except ImportError:
            raise ImportError(
                "Couldn't import Django. Are you sure it's installed and "
                "available on your PYTHONPATH environment variable? Did you "
                "forget to activate a virtual environment?"
            )
        raise
    execute_from_command_line(sys.argv)
怎么了? 我可以执行迁移和创建超级用户,使用shell plus和其他命令,但我可以运行服务器。我尝试将设置值更改为production和dev,将这些值放入
\uuuu init\uuuu.py
中,然后做其他事情,但什么也不做

中间件类

MIDDLEWARE_CLASSES = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
我找不到这方面的信息,我正在测试django 1.10

我对django
1.9.7
没有问题,我不知道为什么。同样,当我用
wagtail 1.6
创建一个项目时,我在runserver中没有问题,
wagtail 1.6
安装
django 1.9.7
,但我将其替换为
django 1.10
,然后在运行迁移后尝试运行该项目并创建一个超级用户,当我在浏览器中进入主页时,我可以看到页面,也可以看到管理员

所以,我在使用其他应用程序时没有问题,但我自己创建了多个设置,但这个bug还没有出现


有人能帮我吗?

尝试更改中间件类

MIDDLEWARE_CLASSES = [
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'django.middleware.security.SecurityMiddleware',
]

我在将我的应用升级到django 1.10时也遇到了类似的问题。首先,我将尝试将中间件类更改为中间件,因为Django 1.10引入了一种新的中间件样式:

如果这不起作用,我建议检查您的django中间件文件,我必须将所有将对象转换为MiddlewareMixin的类都更改,您可以通过调用以下命令导入:

from django.utils.deprecation import MiddlewareMixin
就我而言,我改变了

class SiteMiddleware(object):
...


我要补充的是,除了mol提到的,在升级Django的过程中,我必须临时禁用链接的虚拟主机。还可以尝试新升级到Django 1.10(卸载Django 1.9,然后安装Django 1.10)


您可能还需要另外清除所有Django会话。

我直接在Django 1.10中尝试过!最初它显示 “TypeError:object()不接受任何参数”错误。
在我将settings.py中的中间件更改为MIDDLEWARE_类之后,它成功了

请发布您的
MIDDLEWARE\u类
设置。(或
MIDDLEWARE
设置)已经完成,并且
WSGI\u应用程序
这是默认的
django 1.10
设置。是的,问题在于一些中间件类。我刚刚在我的settings.py中将“MIDDLEWARE”重命名为“MIDDLEWARE\u类”,一切正常。感谢这项工作,但请注意“中间件类”是。不幸的是,由中间件编写者来修复任何给定的包。重命名为中间件_类为我解决了这个问题,我正在运行1.10.3。请参见下面的内容,如果您有自定义的中间件类,可能值得尝试更新您的中间件类(如果您不做太花哨的事情,这绝对不会有任何麻烦)此外,还更新了第三方中间件,例如,通过PIP对我来说,我必须将中间件更改为中间件类,因为我使用的是django 1.9中的中间件
class SiteMiddleware(object):
...
from django.utils.deprecation import MiddlewareMixin

class SiteMiddleware(MiddlewareMixin):
...