Django Allauth - ModuleNotFoundError: No module named 'allauth.account.middleware' 即使已正确安装django-allauth
Django Allauth - ModuleNotFoundError: No module named 'allauth.account.middleware' 即使已正确安装django-allauth
"ModuleNotFoundError: 找不到名为'allauth.account.middleware'的模块"
即使django-allauth已经全部安装和设置好了,我在我的django项目中一直得到这个错误??
我甚至尝试重新安装和更改我的python到python3,但没有改变任何东西,无法弄清楚为什么所有其他导入都有效,但是MIDDLEWARE不行...
求助?
settings.py:
""" youtube2blog2项目的Django设置。 使用Django 4.2.4通过'django-admin startproject'生成。 有关此文件的更多信息,请参见: 有关设置及其值的完整列表,请参见 """ from pathlib import Path import django import os import logging import pyfiglet import allauth # 将项目内的路径构建为:BASE_DIR / 'subdir'的形式。 BASE_DIR = Path(__file__).resolve().parent.parent # 快速启动开发设置-不适用于生产 # 安全警告:保持生产中使用的密钥保密! SECRET_KEY = 'omegalul' # 安全警告:在生产中不要打开调试! DEBUG = True ALLOWED_HOSTS = [] # CUSTOM CODE # os.environ['FFMPEG_PATH'] = '/third-party/ffmpeg.exe' # os.environ['FFPROBE_PATH'] = '/third-party/ffplay.exe' OFFLINE_VERSION = False def offline_version_setup(databases): if (OFFLINE_VERSION): # 写入代码以替换离线设置的数据库字典数据 return True return banner_ascii_art = pyfiglet.figlet_format("CHRIST IS KING ENTERPRISES") logger = logging.getLogger() logger.setLevel(logging.DEBUG) print("\n - 当前Django版本:" + str(django.get_version())) print("\n - settings.py:当前日志记录器级别为" + str(logger.getEffectiveLevel())) logger.debug('settings.py:日志记录器正在工作。\n\n') MEDIA_ROOT = os.path.join(BASE_DIR, 'media') MEDIA_URL = '/media/' AUTHENTICATION_BACKENDS = [ # 不管`allauth`如何,都需要通过用户名在Django管理员中登录 'django.contrib.auth.backends.ModelBackend', # `allauth`特定的身份验证方法,例如通过电子邮件登录 'allauth.account.auth_backends.AuthenticationBackend', ] ''' 社交认证所需的设置 需要开发者凭据 在MVP完成之前暂停 # 特定提供商的设置 SOCIALACCOUNT_PROVIDERS = { 'google': { # 对于每个基于OAuth的提供商,要么添加一个包含所需客户端凭证的`SocialApp`(`socialaccount`应用),要么在此处列出它们: 'APP': { 'client_id': '123', 'secret': '456', 'key': '' } } 'apple': { } 'discord' { } } ''' LOGIN_REDIRECT_URL = 'dashboard' # # Application definition INSTALLED_APPS = [ # 我的应用程序 'yt2b2', 'home', 'dashboard', # Django应用程序 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', # 下载的应用程序 'rest_framework', 'embed_video', 'allauth', 'allauth.account', 'allauth.socialaccount', #'allauth.socialaccount.providers.google', #'allauth.socialaccount.providers.apple', #'allauth.socialaccount.providers.discord', ] MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', # 下载的中间件 'allauth.account.middleware.AccountMiddleware', ] ROOT_URLCONF = 'youtube2blog2.urls' TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'templates')], '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', ], }, }, ] WSGI_APPLICATION = 'youtube2blog2.wsgi.application' # Database DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': BASE_DIR / 'db.sqlite3', # <--------- OFFLINE VERSION # 考虑使用.env文件掩盖这些秘密变量,以增强Django应用程序的安全性。此外,Vercel允许您在部署期间列出环境变量。 #'URL' : 'postgresql://postgres:oibkk5LL9sI5dz[email protected]:5968/railway', #'NAME' : 'railway', #'USER' : 'postgres', #'PASSWORD' : 'oibkk5LL9sI5dzY5PAnj', #'HOST' : 'containers-us-west-128.railway.app', #'PORT' : '5968' } } # Password validation AUTH_PASSWORD_VALIDATORS = [ { 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', }, { 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', }, { 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', }, { 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', }, ] # Internationalization LANGUAGE_CODE = 'en-us' TIME_ZONE = 'UTC' USE_I18N = True USE_TZ = True # Static files (CSS, JavaScript, Images) STATIC_URL = '/static/' # url中的路径 STATICFILES_DIRS = [ os.path.join(BASE_DIR, "static"), ] # 默认主键字段类型 DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
尝试更改为python3,通过pip重新安装django-allauth,尝试其他stackoverflow的解决方案,浏览allauth文档... 现在都没有起作用
更新:由于垃圾邮件过滤器的原因,删除了https链接
错误位置:
MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', # 下载的中间件 'allauth.account.middleware.AccountMiddleware', ]