web-dev-qa-db-fra.com

Impossible d'importer «oauth2_provider.ext.rest_framework.OAuth2Authentication» pour le paramètre d'API «DEFAULT_AUTHENTICATION_CLASSES»

C'est la première fois que je travaille avec Django reste et Django Oauth toolkit je suis ce tutoriel oauth2-with-Django-rest-framework Mais quand j'exécute python manage.py migrate j'obtiens l'erreur suivante:

ImportError: impossible d'importer "oauth2_provider.ext.rest_framework.OAuth2Authentication" pour le paramètre d'API "DEFAULT_AUTHENTICATION_CLASSES". ImportError: aucun module nommé ext.rest_framework.

Qu'est-ce qui ne va pas? y a-t-il un autre module que je devrais installer? mon environnement virtuel contient:

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

demandes == 2.18.1

six == 1.10.0

Unidecode == 0.4.21

urllib3 == 1.21.1

16
Akamee

On dirait oath2_provider.exta été déplacé vers oauth_provider.contrib. Vous pouvez essayer d'installer une ancienne version de Django-oauth-toolkit, ou essayez de modifier la valeur dans DEFAULT_AUTHENTICATION_CLASSES de:

'oauth2_provider.ext.rest_framework.OAuth2Authentication',

à:

'oauth2_provider.contrib.rest_framework.OAuth2Authentication',

Notez que le didacticiel a quelques années, vous pourriez trouver d'autres problèmes comme celui-ci.

45
Alasdair

J'étais confronté au même problème. Dans mon fichier de configuration, DEFAULT_AUTHENTICATION_CLASSES était déjà 'oauth2_provider.contrib.rest_framework.OAuth2Authentication',

Je viens d'installer une ancienne version comme le demande @Alasdair. Mon problème a été résolu. Merci

2
sakulachi8