Dav*_*ver 10 python sqlalchemy flask-sqlalchemy
重新构建 Docker 映像后,我开始收到以下错误:
$ docker run --rm -it python:3.8-slim /bin/bash
...
$ pip install flask_sqlalchemy
...
$ python -c "from flask_sqlalchemy import SQLAlchemy; SQLAlchemy()"
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/usr/local/lib/python3.8/site-packages/flask_sqlalchemy/__init__.py", line 715, in __init__
self.Model = self.make_declarative_base(model_class, metadata)
File "/usr/local/lib/python3.8/site-packages/flask_sqlalchemy/__init__.py", line 797, in make_declarative_base
model.query_class = self.Query
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/ext/declarative/api.py", line 79, in __setattr__
_add_attribute(cls, key, value)
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/ext/declarative/base.py", line 802, in _add_attribute
type.__setattr__(cls, key, value)
TypeError: can't apply this __setattr__ to DefaultMeta object
Run Code Online (Sandbox Code Playgroud)
涉及的特定软件包的版本:
python -c "import sqlalchemy, flask_sqlalchemy; print(sqlalchemy.__version__, flask_sqlalchemy.__version__)"
1.3.18 # sqlalchemy
2.4.3 # flask_sqlalchemy
Run Code Online (Sandbox Code Playgroud)
虽然我也遇到过版本1.3.17和2.4.1.
Dav*_*ver 12
经过一些实验,问题似乎是由于python:3.8.3-slim和之间的一些变化造成的python:3.8.4-slim。
要重现,请注意这是有效的:
$ docker run --rm -it python:3.8.3-slim …
Run Code Online (Sandbox Code Playgroud)
这不是:
docker run --rm -it python:3.8.4-slim …
Run Code Online (Sandbox Code Playgroud)
看起来这个错误/修复是问题的原因:https : //bugs.python.org/issue39960
| 归档时间: |
|
| 查看次数: |
845 次 |
| 最近记录: |