python - ImportError:无法导入“rest_framework_simplejwt.authentication.JWTAuthentication”
问题描述
我正在尝试在 GCP 上部署 django 应用程序,但是当我尝试进行迁移时,它给了我这个错误:
ImportError:无法为 API 设置“DEFAULT_AUTHENTICATION_CLASSES”导入“rest_framework_simplejwt.authentication.JWTAuthentication”。ModuleNotFoundError:没有名为“rest_framework_simplejwt”的模块。
设置.py
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework_simplejwt.authentication.JWTAuthentication',
],
'DEFAULT_PERMISSION_CLASSES': [
'rest_framework.permissions.IsAuthenticated'
],
'DEFAULT_RENDERER_CLASSES': [
'rest_framework.renderers.JSONRenderer',
'rest_framework.renderers.BrowsableAPIRenderer',
]
}
SIMPLE_JWT = {
'ALGORITHM': 'HS256',
'SIGNING_KEY': SECRET_KEY,
'VERIFYING_KEY': None,
'ACCESS_TOKEN_LIFETIME': timedelta(minutes=800),
'REFRESH_TOKEN_LIFETIME': timedelta(days=2),
}
OAUTH2_PROVIDER = {
'ACCESS_TOKEN_EXPIRE_SECONDS': 60 * 15,
'OAUTH_SINGLE_ACCESS_TOKEN': True,
'OAUTH_DELETE_EXPIRED': True
}
要求.txt
django-cors-headers
pyjwt
djangorestframework
djangorestframework-jwt==1.11.0
我错过了什么?
更新 我安装了rest_framework_simplejwt,现在错误转移到:
没有名为“rest_framework_simplejwt.tokens”的模块
解决方案
看来你混淆了两个包。djangorestframework-jwt
您在 requirements.txt 中的内容不再维护。它提供了rest_framework_jwt.authentication.JSONWebTokenAuthentication
身份验证类。
但是,您实际使用的 ,rest_framework_simplejwt.authentication.JWTAuthentication
来自 pip 包djangorestframework-simplejwt
所以你需要更新你的 requirements.txt。删除djangorestframework-jwt
和添加djangorestframework-simplejwt
推荐阅读
- python-3.x - 在 opencv imshow() 函数中不会打开新窗口并在 jupyter notebook 中显示图像
- javascript - 星期四在尝试获取星期几时错误地返回星期二
- r - 如何根据突发事件组合列?
- c# - RelayCommand 未调用 Execute 方法 WPF
- javascript - 如何将 dc.js 与 d3 水平图集成以进行数据渲染?
- haskell - 在 Haskell 中从 Double 转换为 Fixed 的正确方法是什么?
- npm - Visual Studio 代码 CMD.EXE 以上述路径作为当前目录启动。不支持 UNC 路径。默认为 Windows 目录
- typescript - 如何处理 axios httpservice 可观察响应?
- r - 将 lat 和 long 数据帧转换为 R 中的多个空间多边形
- prometheus - 如何在 Prometheus jmx-exporter 中将属性转换为标签?