如何让mypy忽略已安装外部包foo的类型检测错误?
解决mypy忽略带py.typed的foo包类型检查的问题
你之前的配置无效,核心原因是:ignore_errors = true只会忽略foo模块内部的错误,而当前报错的归属是引用foo的bar/other_bar模块,所以针对foo的覆盖规则管不到这些跨模块的属性错误。
要彻底让mypy把foo当成无类型包(就像没安装一样),可以在pyproject.toml里用以下配置:
[[tool.mypy.overrides]] module = ["foo", "foo.*"] # 跳过对foo包的导入追踪,不解析它的类型定义 follow_imports = skip # 忽略foo包的缺失属性、导入相关错误 ignore_missing_imports = true
配置说明:
follow_imports = skip:告诉mypy不要深入检查foo包的内部结构,直接把它当成一个无类型的黑盒ignore_missing_imports = true:忽略所有和foo包相关的“缺失属性”“找不到导入”类错误
保存配置后重新运行mypy,之前的attr-defined错误就会消失。
如果只想针对性解决attr-defined错误,也可以用更精准的配置(但会禁用指定模块内所有同类型错误,优先级低于上面的方案):
[[tool.mypy.overrides]] module = ["bar", "other_bar", "your-other-modules-that-use-foo"] disable_error_code = "attr-defined"
内容的提问来源于stack exchange,提问作者max
相关产品推荐
相关产品推荐

