导入 OAuth2Authentication ImportError:没有名为“oauth2_provider.ext”的模块
Posted
技术标签:
【中文标题】导入 OAuth2Authentication ImportError:没有名为“oauth2_provider.ext”的模块【英文标题】:import OAuth2Authentication ImportError: No module named 'oauth2_provider.ext' 【发布时间】:2021-01-01 07:10:07 【问题描述】:我试图在我的 python 项目中通过 Facebook 登录。它总是告诉我 ImportError: No module named 'oauth2_provider.ext' 每当我使用终端迁移它时
我使用 pip freeze 安装的:
certifi==2020.6.20
cffi==1.14.2
chardet==3.0.4
cryptography==3.1
defusedxml==0.7.0rc1
dj-database-url==0.5.0
Django==2.2.16
django-braces==1.14.0
django-oauth-toolkit==1.3.2
django-oauth2==3.0
django-rest-framework-social-oauth2==1.0.4
djangorestframework==3.11.1
gunicorn==19.6.0
idna==2.10
oauthlib==3.1.0
Pillow==3.3.0
pycparser==2.20
PyJWT==1.7.1
python-social-auth==0.3.6
python3-openid==3.2.0
pytz==2020.1
requests==2.24.0
requests-oauthlib==1.3.0
shortuuid==1.0.1
six==1.15.0
social-auth-app-django==1.1.0
social-auth-core==3.3.3
sqlparse==0.3.1
urllib3==1.25.10
whitenoise==3.2.1
并且 requirements.txt 文件包含:
Django==1.10
gunicorn==19.6.0
Pillow==3.3.0
whitenoise==3.2.1
dj-database-url==0.5.0
psycopg2==2.7.5
django-rest-framework-social-oauth2==1.0.4
还有我的 runtime.txt 文件:
python-3.5.2
以及我用来通过 Facebook 从我在 settings.py 中使用的网站登录的代码
INSTALLED_APPS = [..,
'oauth2_provider',
'social_django',
'rest_framework_social_oauth2',
]
TEMPLATES = [ ...,
'OPTIONS': ...,
'social_django.context_processors.backends',
'social_django.context_processors.login_redirect',
],
AUTHENTICATION_BACKENDS = (
'social_core.backends.facebook.FacebookOAuth2',
'rest_framework_social_oauth2.backends.DjangoOAuth2',
'django.contrib.auth.backends.ModelBackend',
)
SOCIAL_AUTH_FACEBOOK_KEY = '355645928947054'
SOCIAL_AUTH_FACEBOOK_SECRET = 'c606775c70e7dc01626ee41cbf95a0b8'
SOCIAL_AUTH_FACEBOOK_SCOPE = ['email']
SOCIAL_AUTH_FACEBOOK_PROFILE_EXTRA_PARAMS =
'fields': 'id, name, email'
在 urls.py 中:
in urlpatterns = [... ,
..,
url(r'^api/social/', include('rest_framework_social_oauth2.urls')),
]
【问题讨论】:
【参考方案1】:由➡️ pip install django-rest-framework-social-oauth2解决
不是那个版本导致那个 er ▶️ django-rest-framework-social-oauth2==1.0.4 然后错误消失了
【讨论】:
以上是关于导入 OAuth2Authentication ImportError:没有名为“oauth2_provider.ext”的模块的主要内容,如果未能解决你的问题,请参考以下文章
SpringSecurity Oauth2Authentication对象使用