自从今天起,在我的 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'>
没有意识到任何可能导致此问题的重要提交。
我将矩阵更改为坚持使用Python 3.8,而不是尝试3.9、3.10和3.11,同时考虑到python 3.9 AttributeError:module'posix'has no attribute'__all__'中类似问题是由于缺少对3.9的支持。
如何调试和减轻上述错误?
我假设问题在设置/环境或一些奇怪的GitHub actions、Python、pip或测试环境等方面。
我是参与的项目的提交者,包括:
- https://github.com/WolfgangFahl/pyOnlineSpreadSheetEditing 和可能的
- https://github.com/WolfgangFahl/pyFlaskBootstrap4
更新: 在遵循@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 的修复是否有效。
我按照建议设置版本后接受了答案。虽然还有后续问题,但问题已得到解答。