已安装djangorestframework-simplejwt仍报ModuleNotFoundError求助
解决
ModuleNotFoundError: No module named 'rest_framework_simplejwt'问题 1. 清理冲突的非官方包
你的pip列表里存在两个干扰性的山寨包,会导致Python导入路径混乱:
django-rest-framework 0.1.0:官方DRF包是djangorestframework,这个是同名第三方山寨包rest-framework-simplejwt 0.0.2:官方simplejwt包是djangorestframework-simplejwt,这个是山寨仿制品
先卸载这两个包:
pip uninstall django-rest-framework rest-framework-simplejwt -y
2. 升级PyJWT版本
djangorestframework-simplejwt 5.5.0要求PyJWT版本至少2.0以上,而你当前的PyJWT 1.7.1版本过低,执行升级:
pip install --upgrade PyJWT
3. 修复urls.py中的语法错误
你的urls.py里有一处明显的类视图调用错误:
# 错误写法:多余的实例化括号 path("api/token/",TokenObtainPairView().as_view(),name="get_token"), # 正确写法:直接调用类的as_view类方法 path("api/token/",TokenObtainPairView.as_view(),name="get_token"),
类视图不需要先实例化,直接通过类调用as_view()即可。
4. 确认虚拟环境激活状态
确保运行Django时,安装包的虚拟环境处于激活状态:
- Linux/macOS:执行
which python,查看输出路径是否为虚拟环境内的Python路径 - Windows:执行
where python,确认使用的是虚拟环境中的解释器
5. 重新安装官方包(可选)
如果上述步骤后问题仍存在,彻底重装官方simplejwt包:
pip uninstall djangorestframework-simplejwt -y pip install djangorestframework-simplejwt
内容的提问来源于stack exchange,提问作者applePie
相关产品推荐
相关产品推荐

