Could not import 'oauth2_provider.ext.rest_fra

2020-03-01 05:22发布

问题:

It's the first time I work with django rest and Django Oauth toolkit I'm following this tutorial oauth2-with-django-rest-framework But when I run python manage.py migrate I get the following error:

ImportError: Could not import 'oauth2_provider.ext.rest_framework.OAuth2Authentication' for API setting 'DEFAULT_AUTHENTICATION_CLASSES'. ImportError: No module named ext.rest_framework.

What is going wrong ? is there another module I should install ? my virtual environment contains :

certifi==2017.4.17

chardet==3.0.4

Django==1.11.2

django-extensions==1.8.1

django-oauth-toolkit==1.0.0

djangorestframework==3.6.3

idna==2.5

oauthlib==2.0.2

pytz==2017.2

requests==2.18.1

six==1.10.0

Unidecode==0.4.21

urllib3==1.21.1

回答1:

It looks like oath2_provider.ext has been moved to oauth_provider.contrib. You could try installing an older version of django-oauth-toolkit, or try changing the value in DEFAULT_AUTHENTICATION_CLASSES from:

'oauth2_provider.ext.rest_framework.OAuth2Authentication',

to:

'oauth2_provider.contrib.rest_framework.OAuth2Authentication',

Note that the tutorial is a couple of years old, you might find other problems like this.



回答2:

I was facing same issue. In my setting file DEFAULT_AUTHENTICATION_CLASSES was already 'oauth2_provider.contrib.rest_framework.OAuth2Authentication',

I just installed older version as @Alasdair ask. My issue resolved. thanks