如何降级PyJWT包版本以解决'str'对象无decode属性报错
PyJWT降级到1.7.0版本操作方法
你遇到的报错是PyJWT 2.x版本的特性导致:2.x版本生成的token默认就是UTF-8编码的字符串类型,不需要调用decode方法。如果需要降级到1.7.0版本规避问题,按以下步骤操作即可:
常规pip环境操作
- 第一步:先卸载当前安装的高版本PyJWT
pip uninstall pyjwt
执行后出现确认提示时输入y回车完成卸载。
- 第二步:安装指定的1.7.0版本
pip install pyjwt==1.7.0
- 验证安装结果:执行以下命令,返回的Version字段显示为1.7.0即为成功
pip show pyjwt
Conda环境操作
如果使用conda管理依赖,执行以下命令:
- 卸载现有版本
conda remove pyjwt
- 安装1.7.0版本
conda install pyjwt=1.7.0
依赖文件批量更新操作
如果用requirements.txt管理项目依赖,直接将文件中PyJWT的版本配置修改为pyjwt==1.7.0,再执行以下命令即可批量更新:
pip install -r requirements.txt
注意:如果执行命令时提示权限不足,Linux/macOS用户可在命令前加
sudo提升权限,Windows用户可使用管理员身份运行终端后再执行命令。
补充:如果不想降级也可以直接修改代码适配2.1.0版本,将原有代码中的.decode('utf-8', algorithms=["HS256"])删除,直接返回token即可正常运行。
内容的提问来源于stack exchange,提问作者SAGY
相关产品推荐
相关产品推荐

