如何忽略mypy报的oracledb.NUMBER属性未定义错误?
解决mypy提示oracledb无NUMBER属性的错误
你之前的配置没生效主要是两个问题:配置项名称写错了,包名匹配也不对。下面给你正确的解决办法:
正确的mypy.ini配置
推荐:仅针对oracledb包禁用错误
在mypy.ini里添加这段配置,精准屏蔽oracledb模块的属性未定义错误:
[mypy-oracledb.*] disable_error_code = attr-defined
注意两点:
- 配置项用下划线
disable_error_code,不是你之前写的连字符disable-error-code - 包名要写
oracledb,不是oracle,否则匹配不到目标模块
全局禁用(不推荐)
如果想全局屏蔽所有“属性未定义”的错误,在mypy.ini的[mypy]段下配置:
[mypy] disable_error_code = attr-defined
这种方式会忽略所有模块的同类错误,可能掩盖其他真实问题,谨慎使用。
代码内临时忽略
如果配置文件还是不生效,也可以直接在代码里加注释忽略:
- 单行忽略:
import oracledb num_type = oracledb.NUMBER # type: ignore[attr-defined]
- 忽略整个模块的该错误:
import oracledb # type: ignore[attr-defined]
之前配置失效的原因
- 配置项名称错误:mypy的官方配置项是
disable_error_code(下划线分隔),你用的disable-error-code会被识别为无效配置,自然不生效。 - 包名匹配错误:你写的
[mypy-oracle.*]对应oracle包,但实际使用的是oracledb包,规则根本没应用到目标模块上。
内容的提问来源于stack exchange,提问作者Tlaloc-ES
相关产品推荐
相关产品推荐

