繁体   English   中英

AttributeError:模块“sqlalchemy”在 github 操作中没有属性“__all__”

[英]AttributeError: module 'sqlalchemy' has no attribute '__all__' in github actions

从今天开始,在我的 github CI 中出现如下错误:

File "/home/runner/.local/lib/python3.8/site-packages/fb4/login_bp.py", line 12, in <module>
    from fb4.sqldb import db
  File "/home/runner/.local/lib/python3.8/site-packages/fb4/sqldb.py", line 8, in <module>
    db = SQLAlchemy()
  File "/home/runner/.local/lib/python3.8/site-packages/flask_sqlalchemy/__init__.py", line 758, in __init__
    _include_sqlalchemy(self, query_class)
  File "/home/runner/.local/lib/python3.8/site-packages/flask_sqlalchemy/__init__.py", line 112, in _include_sqlalchemy
    for key in module.__all__:
AttributeError: module 'sqlalchemy' has no attribute '__all__'

CRITICAL: Exiting due to uncaught exception <class 'ImportError'>

没有意识到可能导致这种情况的任何重大承诺。 我的本地测试和我的 jenkins CI 仍然有效。

我更改了矩阵以坚持使用 python 3.8,而不是同时尝试 3.9、3.10 和 3.11,同时考虑到python 3.9 AttributeError: module 'posix' has no attribute '__all__' was due to missing 3.9 support. 中的类似问题。

我想知道如何调试和缓解上述错误?

我的假设是问题出在设置/环境或 github 操作、python、pip 或测试环境等的一些奇怪的行为变化。

我是所涉及项目的提交者,这些项目是:

更新:遵循@snakecharmerb 的建议后,日志现在显示版本冲突

RROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts
The conflict is caused by:
    The user requested Flask~=2.0.2
    bootstrap-flask 1.8.0 depends on Flask
    flask-dropzone 1.6.0 depends on Flask
    flask-login 0.6.2 depends on Flask>=1.0.4
    flask-httpauth 1.0.0 depends on Flask
    flask-sqlalchemy 3.0.2 depends on Flask>=2.2

这很有趣,因为我试图避免使用 ~ 符号...实际上这是一个错字...让我们看看升级 Flask-SQLAlchemy>=3.0.2 的修复程序现在是否有效。

按照建议设置版本后,我已经接受了答案。 有后续问题,但问题已得到解答。

在最近发布的 SQLAlchemy 2.0 中似乎删除了.__all__属性。 您可能需要以某种方式在您的配置中固定 SQLAlchemy 版本。 或者确保您使用的是 Flask-SQLAlchemy 3.0.2 或更高版本,因为此问题表明该版本具有所需的修复。

我通过在 flask-SQLAlchemy 之前的要求中添加特定版本的 SQLAlchemy 解决了这个问题。 例子:

Flask==2.1.3
SQLAlchemy==1.4 (new one)
flask-restx==0.5.1

我注意到pip正在安装2.0版本

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM