![](/img/trans.png)
[英]python 3.9 AttributeError: module 'posix' has no attribute '__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.