我有以下代码(代码片段):

from sqlalchemy.orm import declarative_base

Base = declarative_base()

安装了pip i

$ pip install -U sqlalchemy[mypy] sqlalchemy-stubs mypy
$ pip list | egrep -i '(sqlal|mypy)'
mypy                          0.982
mypy-extensions               0.4.3
SQLAlchemy                    1.4.42
sqlalchemy-stubs              0.4
SQLAlchemy-Utils              0.38.3
sqlalchemy2-stubs             0.0.2a29

尽管如此,当我跑mypy file.py米的时候,我得到的是:

$ python3 -mmypy test.py 
test.py:1: error: Module "sqlalchemy.orm" has no attribute "declarative_base"
Found 1 error in 1 file (checked 1 source file)

我使用的是Virtualenv中的Python3.10.5.

我可以做些什么来调试更多?

推荐答案

我认为这是一个石化的问题.

声明性包现在集成到 SqlalChemy.orm命名空间

https://docs.sqlalchemy.org/en/14/changelog/migration_14.html#change-5508

看起来它在Mypy上不能正常工作,但我没有深入研究.

当我以如下方式导入DECLARATIONAL_BASE"旧方法"时,它工作得很好:

from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

Python-3.x相关问答推荐

如何在M x N数组的行中找到所有值的组合

从另一个云函数调用带有仅允许内部流量标志的云函数时出现问题

你能骗PIP 让它相信包已经安装了吗

Python.在循环中填充字典的问题

Einsum 对于张量乘法很慢

如何在数据['column']中的'string'等条件下应用pandas

如何在 django 中没有循环的情况下获得前键的前键?

pip install mysqlclient 失败为 mysqlclient 运行 setup.py bdist_wheel ... 错误

具有 2 个输入的 python 3 map/lambda 方法

在python中基于列表理解的条件下跳过元素

UnicodeDecodeError:utf-8编解码器无法解码位置 1 的字节 0x8b:无效的起始字节,同时读取Pandas中的 csv 文件

Python:如何判断一个项目是否被添加到一个集合中,没有 2x(hash,lookup)

pip install dryscrape 失败并显示错误:[Errno 2] 没有这样的文件或目录:'src/webkit_server'?

如何将 Matplotlib 图形转换为 PIL Image 对象(不保存图像)

如何将 cv2.imread 匹配到 keras image.img_load 输出

当默认 pip 为 pip2 时,升级 pip3 的正确格式是什么?

如何在 QGraphicsView 中启用平移和zoom

python asyncio add_done_callback 与 async def

Python,Docker - ascii编解码器无法编码字符

如何从Pandas 中的字符串中提取前8个字符