导入 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对象使用

Spring Oauth2:如何获取所有clientIds?

无限级分类批量导入csv-记录

iOS 将 .obj 文件导入模型 I/O 而不复制顶点

java POI 导入excel时候日期格式转化

R语言data.table导入数据实战: .N函数和.I函数使用.N函数返回行数使用.I函数返回满足特定条件行的索引