记一次djangorestframework-jwt 报错

今天在使用djangorestframework-jwt 时遇到了一个错误,错误提示如下:

AttributeError at /jwt-auth/ module 'jwt' has no attribute 'encode'

找到这个出错的地方"rest_framework_jwt包下的utils.py"模块,代码块

def jwt_encode_handler(payload):
    key = api_settings.JWT_PRIVATE_KEY or jwt_get_secret_key(payload)
    return jwt.encode(
        payload,
        key,
        api_settings.JWT_ALGORITHM
    ).decode('utf-8')

根据错误的提示,应该是jwt下面没有encode这个方法,然后ctrl+鼠标左键打开了jwt,发现里面确实没有这个方法,所以我怀疑是我安装的jwt版本问题,我就卸载、重装了jwt;重试之后发现仍然报错,我网上搜索这个错误,发现网上并没有和我类似的。我就有查询了在Django下使用jwt的方法,发现有两个,一是安装PyJWT、二是使用djangorestframework-jwt,我发现那些文章中从没有说明要单独安装jwt这个包,我想这个包应该是安装上面两个包时自己安装的,所以我先卸载jwt、然后卸载PyJWT、djangorestframework-jwt,重新安装PyJWT、djangorestframework-jwt,重试一次,发现成功了!

总结这次解决问题的心路历程,安装依赖库时应该安装依赖顺序安装,否则可能会导致版本问题,如果卸载一个包不行,那就把相关的包都卸载再按顺序安装~

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值