文章内容

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 日正式发布。


参考资料:

1、Retrieving data from RDS gives AttributeError: 'sqlalchemy.cimmutabledict.immutabledict' object has no attribute 'setdefault'


黄兵个人博客原创。

转载请注明出处:黄兵个人博客 - AttributeError: 'sqlalchemy.cimmutabledict.immutabledict' object has no attribute 'setdefault'

分享到:

发表评论

评论列表