没有名为'allauth.account.context_processors'的模块

时间:2015-07-27 08:13:04

标签: python django packages django-allauth django-settings

我想使用Django-Allauth,所以我安装如下,它在我的笔记本电脑localhost中完美运行;但当我把它拉进我的服务器时,我 遇到以下错误:

No module named 'allauth.account.context_processors'

我该怎么办?

# Django AllAuth
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                # Already defined Django-related contexts here

                # `allauth` needs this from django
                'django.contrib.auth.context_processors.auth',
                'django.core.context_processors.request',

                # `allauth` specific context processors
                'allauth.account.context_processors.account',
                'allauth.socialaccount.context_processors.socialaccount',
                "django.contrib.auth.context_processors.auth",
                "django.core.context_processors.debug",
                "django.core.context_processors.i18n",
                "django.core.context_processors.media",
                "django.core.context_processors.static",
                "django.core.context_processors.tz",
                "django.core.context_processors.request",
                "moolak.context_processors.image",
            ],
        },
    },
]


AUTHENTICATION_BACKENDS = (
    # Needed to login by username in Django admin, regardless of `allauth`
    'django.contrib.auth.backends.ModelBackend',

    # `allauth` specific authentication methods, such as login by e-mail
    'allauth.account.auth_backends.AuthenticationBackend',
)

SOCIALACCOUNT_QUERY_EMAIL = True

EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'

SOCIALACCOUNT_PROVIDERS = \
    {'google':
        {'SCOPE': ['profile', 'email'],
         'AUTH_PARAMS': {'access_type': 'online'}}}


SOCIALACCOUNT_PROVIDERS = \
    {'facebook': {'SCOPE': ['email', 'public_profile', 'user_friends'], 'AUTH_PARAMS': {'auth_type': 'reauthenticate'}, 'METHOD': 'js_sdk', 'VERSION': 'v2.3'}}


# newsletter

NEWSLETTER_DEFAULT_HEADER_SENDER = 'NewsLetter <info@m.com>'

我从未使用过Django-Alluth,所以我是新手,请尽可能地帮助我。

4 个答案:

答案 0 :(得分:42)

这意味着您的开发机器和服务器中有不同版本的Allauth。你绝对应该在双方使用相同的版本。

在django-allauth的0.22版本context processors have been replaced by template tags中,您正在服务器上遇到问题的原因。

您只需要确保:

  1. 您至少在运行Allauth 0.22,这是截至目前的最新版本(pip install django-allauth==0.22
  2. Django项目设置中未列出Allauth特定的上下文处理器。所以你需要删除这两行:
  3. # `allauth` specific context processors
    'allauth.account.context_processors.account',
    'allauth.socialaccount.context_processors.socialaccount',
    

答案 1 :(得分:3)

此错误表示找不到该模块。

您可能只需在服务器上安装名为allauth的第三方模块(或将其添加到requirements.txt,如果您使用Heroku上的自动部署)。

pip install django-allauth

您可以在本地运行pip freeze以查看已安装的模块。

要安装特定版本的django-allauth,请使用:

pip install django-allauth==0.22.0

答案 2 :(得分:1)

allauth 0.22.0有问题,安装allauth 0.20.0

pip install django-allauth==0.20.0

答案 3 :(得分:0)

您可以在本地运行pip Frozen以查看已安装的模块。

要安装django-allauth的特定版本,请使用。它将解决问题。

pip install django-allauth == 0.22.0