2015-08-26 26 views
4

我使用Django版本1.8和Python 2.7。运行我的项目后出现以下错误。Django ImportError:没有模块命名中间件

Traceback (most recent call last): 
    File "C:\Python27\lib\wsgiref\handlers.py", line 85, in run 
    self.result = application(self.environ, self.start_response) 
    File "C:\Python27\lib\site-packages\django\contrib\staticfiles\handlers.py", line 63, in __call__ 
    return self.application(environ, start_response) 
    File "C:\Python27\lib\site-packages\django\core\handlers\wsgi.py", line 170, in __call__ 
    self.load_middleware() 
    File "C:\Python27\lib\site-packages\django\core\handlers\base.py", line 50, in load_middleware 
    mw_class = import_string(middleware_path) 
    File "C:\Python27\lib\site-packages\django\utils\module_loading.py", line 26, in import_string 
    module = import_module(module_path) 
    File "C:\Python27\lib\importlib\__init__.py", line 37, in import_module 
    __import__(name) 
ImportError: No module named middleware 
[26/Aug/2015 20:34:29] "GET /favicon.ico HTTP/1.1" 500 59 

这是我的settings.py文件

""" 
Django settings for collageapp project. 

Generated by 'django-admin startproject' using Django 1.8. 

For more information on this file, see 
https://docs.djangoproject.com/en/1.8/topics/settings/ 

For the full list of settings and their values, see 
https://docs.djangoproject.com/en/1.8/ref/settings/ 
""" 

# Build paths inside the project like this: os.path.join(BASE_DIR, ...) 
import os 

APP_PATH = os.path.dirname(os.path.abspath(__file__)) 
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 


# Quick-start development settings - unsuitable for production 
# See https://docs.djangoproject.com/en/1.8/howto/deployment/checklist/ 

# SECURITY WARNING: keep the secret key used in production secret! 
SECRET_KEY = '******************************************************' 

# SECURITY WARNING: don't run with debug turned on in production! 
DEBUG = True 

ALLOWED_HOSTS = [] 


# Application definition 

INSTALLED_APPS = (
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'manageApp', 
    'django.contrib.sites', 
    'allauth', 
    'allauth.account', 
    'allauth.socialaccount', 
    'allauth.socialaccount.providers.facebook', 
    'allauth.socialaccount.providers.google', 
    'django.contrib.admindocs', 
    'rest_framework', 
) 

SITE_ID = 1 

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware', 
    'django.middleware.csrf.CsrfViewMiddleware', 
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 
    'django.middleware.clickjacking.XFrameOptionsMiddleware', 
    'django.middleware.security.SecurityMiddleware', 
    'corsheaders.middleware.CorsMiddleware', 
    'oauth2_provider.middleware.OAuth2TokenMiddleware', 
) 


ROOT_URLCONF = 'collageapp.urls' 
CORS_ORIGIN_ALLOW_ALL = True 

TEMPLATES = [ 
    { 
     'BACKEND': 'django.template.backends.django.DjangoTemplates', 
     'DIRS': [], 
     'APP_DIRS': True, 
     'OPTIONS': { 
      'context_processors': [ 
       'django.template.context_processors.debug', 
       'django.template.context_processors.request', 
       'django.contrib.auth.context_processors.auth', 
       'django.contrib.messages.context_processors.messages', 
       'allauth.account.context_processors.account', 
       'allauth.socialaccount.context_processors.socialaccount' 
      ], 
     }, 
    }, 
] 

WSGI_APPLICATION = 'collageapp.wsgi.application' 


# Database 
# https://docs.djangoproject.com/en/1.8/ref/settings/#databases 

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.mysql', 
     'NAME': 'college_app', 
     'USER': 'root', 
     'PASSWORD': '', 
     'HOST': 'localhost', # Or an IP Address that your DB is hosted on 
     'PORT': '3306', 
    } 
} 



# Internationalization 
# https://docs.djangoproject.com/en/1.8/topics/i18n/ 

LANGUAGE_CODE = 'en-us' 

TIME_ZONE = 'UTC' 

USE_I18N = True 

USE_L10N = True 

USE_TZ = True 


# Static files (CSS, JavaScript, Images) 
# https://docs.djangoproject.com/en/1.8/howto/static-files/ 

STATIC_URL = '/static/' 

我曾尝试冲浪的错误,但徒劳无功。我的同一个代码在其他机器上工作正常。

+0

这个错误有什么用sql文件迁移或workspace.xml? –

回答

9

通过在项目目录中运行python manage.py shell打开python shell。

在Python Shell中时运行以下命令之一:

>>> from corsheaders.middleware import CorsMiddleware 
>>> from oauth2_provider.middleware import OAuth2TokenMiddleware 
>>> from django.contrib.auth.middleware import SessionAuthenticationMiddleware 

有一行应该给你一个错误,如下列:

Traceback (most recent call last): 
    File "<console>", line 1, in <module> 
ImportError: No module named middleware 

,让行你那个错误是给你问题的缺失模块。

要查找的模块搜索路径,请

>>> import sys; sys.path 

另外,如果你不知道如何使用Python Shell中,你可以只删除以下各行中的settings.MIDDLEWARE_CLASSES一次一个,直到你没有得到这样的错误了:

'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 
'corsheaders.middleware.CorsMiddleware', 
'oauth2_provider.middleware.OAuth2TokenMiddleware', 

只是缰绳高大的包裹给你的错误。

django.contrib.auth.middleware - >django

corsheaders.middleware - >corsheaders

oauth2_provider.middleware - >oauth2_provider

+0

oauth2_provider失踪了,我多么无聊!!!!非常感谢你:) –

+0

感谢您提供一个“理智”的方法来解决这个问题。我有一个类似的,你让我的一天:) –

+0

@PaoloStefan很高兴这是有帮助:) – user193130

1

确保您已将所有支持包安装在可以找到它们的位置。我遇到了安装了多个Python解释器的问题,并且在使用另一个解释器安装包时无意中运行了Django。我要验证的另一件事是,你在两台机器上都有相同版本的软件包。请密切关注corsheaders.middleware.CorsMiddlewareoauth2_provider.middleware.OAuth2TokenMiddleware,因为它们不属于Django。

+0

我已经安装了所有这些软件包,我仍然收到错误消息。我正在使用django 1.7。以下是我的冻结名单: defusedxml == 0.4.1 Django的== 1.7 的Django-CORS-头== 1.3.1 Django的tastypie == 0.13.3 LXML == 3.6.4 的oauth2提供商= = 0.0 Pillow == 3.4.2 python-dateutil == 2.6.0 python-mimeparse == 1.6.0 六== 1.10.0 South == 1.0。2 (env)mike @ mike-VirtualBox:/ var/www/CordeliaHanelBackend-master $ – user1941390

+0

您应该发布一个新问题。 –

相关问题