Framework/Django

[Django] Django REST Framework JWT Import Error 해결 방법

Jonnie 2022. 3. 27. 19:53

ImportError: Could not import 'rest_framework_jwt.authentication.JSONWebTokenAuthentication' for API setting 'DEFAULT_AUTHENTICATION_CLASSES'. ImportError: cannot import name 'smart_text' from 'django.utils.encoding'

 

DRF 로그인 기능 구현을 하던 중 위와 같은 오류가 발생했다.

해당 오류에 대한 여러 답변이 있었지만 나에게는 해당되지 않아 찾아보던 중 한 글을 보게 되엇다. 

 

https://www.inflearn.com/questions/482303

 

rest_framework_jwt를 임포트할 수 없다는 에러가 발생합니다 - 인프런 | 질문 & 답변

안녕하세요? 강의 잘 듣고 있습니다.   강의 11분경 즈음 rest_framework_jwt에러가 발생합니다 가상환경에 알맞게 설치되었는지는 확인했고 / 혹시나 해서 pip uninstall후 다시 install까지 해봣는데도 에

www.inflearn.com

장고 버전 4부터 지원이 되지 않는다는 글이었다.

혹시나 하는 마음에 djangorestframework_jwt 폴더를 확인해보았다. 

djangorestframework-jwt 보니 Django 4부터는 지원이 안 되는 듯하다

requirements를 확인해보니 실제로 Django 버전 4에 대한 언급이 없음을 확인할 수 있었다.

이에 버전 3에서도 구현을 진행해도 문제가 없음을 확인하고 

pip install django==3.2

터미널에 위 코드를 넣어 장고 버전 3으로 변경해주었다. 참고로 자동으로 기존 버전 uninstall 후 install 해주므로 따로 다운그레이드에 대한 방법을 고민하지 않아도 된다. (하지만 내가 그걸 고민하느라 시간을 꽤 썼다)

 

이후 JWT가 정상 작동함을 확인할 수 있었다.

항상 버전 확인은 중요하다...