文章内容
2021/8/9 17:06:05,作 者: 黄兵
AttributeError: 'sqlalchemy.cimmutabledict.immutabledict' object has no attribute 'setdefault'
最近更新了 Python 的程序包,之后项目报错如下内容:
AttributeError:
'sqlalchemy.cimmutabledict.immutabledict' object has no attribute 'setdefault'
存在问题的原因:
该问题是 flask-sqlalchemy 中的一个已知问题,由 SQLAchemy 1.4 中的更改引起。Flask-sqlalchemy 尝试修改 SQLALchemy 引擎的 URL,但这些 URL 在 SQLAlchemy 1.4 中是不可变的。
该问题已在 Flask-SQLAlchemy 2.5+ ( changelog ) 中修复。
解决方案:
1、将 Flask-SQLAlchemy 升级到2.5+以上,到发稿为止,Flask-SQLAlchemy 已经可以升级到2.5.1。
2、如果无法升级 Flask-SQLAlchemy,则可以通过指定传递给的 SQLAlchemy 版本来解决该问题,或者通过命令行:
pip install --upgrade 'SQLAlchemy<1.4'
或在 requirements.txt,更改版本:
SQLAlchemy<1.4
SQLAlchemy 1.4 于 2021 年 3 月 15 日正式发布。
参考资料:
黄兵个人博客原创。
评论列表