AWS EC2实例运行Flask应用时itsdangerous导入错误求助
解决itsdangerous导入TimedJSONWebSignatureSerializer失败的问题
方案1:降级itsdangerous到兼容版本
itsdangerous 2.0及以上版本移除了TimedJSONWebSignatureSerializer类,若不想修改代码,直接降级到1.x兼容版本即可:
pip install itsdangerous==1.1.0
如果EC2实例使用Python3,改用pip3执行:
pip3 install itsdangerous==1.1.0
提示:若使用虚拟环境,需先激活环境再执行命令
方案2:修改代码适配itsdangerous 2.0+版本
若想保留新版本特性,将代码中的导入语句替换为兼容类:
原代码:
from itsdangerous import TimedJSONWebSignatureSerializer as Serializer
替换为:
from itsdangerous import URLSafeTimedSerializer as Serializer
后续使用Serializer的逻辑无需改动,比如初始化和生成签名的代码:
s = Serializer(app.config['SECRET_KEY'], expires_in=3600) token = s.dumps({'user_id': user.id}).decode('utf-8')
内容的提问来源于stack exchange,提问作者Nagesh Singh Chauhan
相关产品推荐
相关产品推荐

