Ошибка при импорте модуля с именем middleware - PullRequest
0 голосов
/ 12 ноября 2018

После переноса проекта django (работающего) с одного сервера на другой, при попытке запустить приложение на новом сервере я сталкиваюсь с ошибкой:

Django version 1.11.16, using settings 'geolocator.settings'
Starting development server at http://example.example.com:2000/
Quit the server with CONTROL-C.
Unhandled exception in thread started by <function wrapper at 0x7f23d7ab3668>
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/django/utils/autoreload.py", line 228, in wrapper
    fn(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/commands/runserver.py", line 146, in inner_run
    handler = self.get_handler(*args, **options)
  File "/usr/local/lib/python2.7/dist-packages/django/contrib/staticfiles/management/commands/runserver.py", line 28, in get_handler
    handler = super(Command, self).get_handler(*args, **options)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/commands/runserver.py", line 67, in get_handler
    return get_internal_wsgi_application()
  File "/usr/local/lib/python2.7/dist-packages/django/core/servers/basehttp.py", line 44, in get_internal_wsgi_application
    return get_wsgi_application()
  File "/usr/local/lib/python2.7/dist-packages/django/core/wsgi.py", line 14, in get_wsgi_application
    return WSGIHandler()
  File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/wsgi.py", line 151, in __init__
    self.load_middleware()
  File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py", line 80, in load_middleware
    middleware = import_string(middleware_path)
  File "/usr/local/lib/python2.7/dist-packages/django/utils/module_loading.py", line 20, in import_string
    module = import_module(module_path)
  File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)

ImportError: No module named middleware

В settings.py:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'intranet',
    'bootstrap3',
    'registration',
    'crispy_forms',
    'fm',
    'dal',
    'dal_select2',
    'rest_framework',
    'django_filters',
    'django_crontab',
    'request',

]


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

Кажется, это связано с WSGI, но я не уверен, что именно не так. Любое предложение?

1 Ответ

0 голосов
/ 12 ноября 2018

Я пошел на https://docs.djangoproject.com/en/1.11/topics/http/middleware/#activating-middleware, чтобы найти официальный список промежуточного программного обеспечения.

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'request.middleware.RequestMiddleware',  # <-- Remove this one.
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

request.middleware.RequestMiddleware не поддерживается в Django 1.11.16.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...