Flask项目跨系统运行报错:无法从werkzeug.routing导入parse_rule
解决Flask项目中
parse_rule导入错误问题 问题原因
这个导入错误是由于flask-restx 0.5.1与当前安装的Werkzeug版本不兼容导致的:Werkzeug在2.1.x及以上版本中,将parse_rule函数从werkzeug.routing模块迁移到了werkzeug.routing.rules模块,但旧版本的flask-restx仍在尝试从原路径导入该函数,从而引发错误。
你的requirements.txt中仅指定了Flask~=2.1.2,而Flask 2.1.x允许安装>=2.0.0版本的Werkzeug,新系统安装时可能自动拉取了高于2.1.0的Werkzeug版本,导致了兼容性冲突。
解决方案
有两种可行的解决方式,任选其一即可:
方案1:锁定兼容的Werkzeug版本
在requirements.txt中添加Werkzeug的版本限制,指定为与flask-restx 0.5.1兼容的版本:
Flask~=2.1.2 psycopg2-binary==2.9.3 Flask-SQLAlchemy==2.5.1 flask-restx==0.5.1 Werkzeug==2.0.3 # 添加这一行 qrcode~=7.3.1 PyPDF2==2.6.0 reportlab~=3.6.10 WTForms~=3.0.1 flask-bootstrap==3.3.7.1 flask-wtf==1.0.1
然后重新安装依赖:
pip install -r requirements.txt --force-reinstall
方案2:升级flask-restx到兼容版本
将flask-restx升级到修复了该导入问题的版本(0.6.0及以上),修改requirements.txt中的对应行:
flask-restx>=0.6.0
同样重新安装依赖:
pip install -r requirements.txt --upgrade
内容的提问来源于stack exchange,提问作者ChsharpNewbie
相关产品推荐
相关产品推荐

