Django ImportError: Module "social_core.backends.google" does not define a "GoogleOpenId" attribute/class

Django ImportError: Module "social_core.backends.google" does not define a "GoogleOpenId" attribute/class

我已经将我的工作 Django 应用程序克隆到基于 Debian 的 Linux 发行版中,我已经安装了所有依赖项,但是当尝试使用电子邮件和密码或 Google 帐户登录时它抛出我出现以下错误:

ImportError: Module "social_core.backends.google" does not define a "GoogleOpenId" attribute/class

我有以下身份验证依赖项:

django-allauth==0.42.0
django-rest-auth==0.9.5
google-auth==1.27.0
oauthlib==3.1.0
requests-oauthlib==1.3.0
social-auth-app-django==3.1.0
social-auth-core==4.0.3

它在 Ubuntu 和 MacOs 中运行良好,在克隆到这个基于 Debian 的发行版时出现了问题。 Google 没有说明这个错误,我不知道从哪里开始搜索,我唯一发现的是我们将它用作身份验证后端:

AUTHENTICATION_BACKENDS = (
    'social_core.backends.open_id.OpenIdAuth',
    'social_core.backends.google.GoogleOpenId', 
    'django.contrib.auth.backends.ModelBackend'
)

GoogleOpenID 不再使用,因此已从 python-social-auth 中删除。但是他们一定是忘记更新文档了。

https://github.com/python-social-auth/social-core/issues/472

https://github.com/python-social-auth/social-docs/issues/65

感谢下面的评论,它解释了 python-social-auth 弃用,我通过将 social-auth-core 包从版本 4.0.3 降级到 [=12= 来解决了这个问题]: