You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置mypy忽略dnspython中query模块的存根文件?

关于dnspython存根文件缺失inbound_xfr导致mypy报错的问题解决

1. 这确实是dnspython的bug

dnspython的dns.query模块中实际存在inbound_xfr函数,但对应的类型存根文件query.pyi没有定义这个属性——这种存根文件与实际代码不一致的情况,属于dnspython的类型定义遗漏问题。你可以在dnspython的官方代码仓库提交issue反馈该问题,维护者通常会修复这类存根缺失的问题。

2. 配置mypy忽略特定模块的存根文件

有几种可行的解决方式:

  • 临时绕过单条报错:在报错代码行末尾添加注释,直接忽略该类型检查错误:
    dns.query.inbound_xfr("10.0.0.1", zone)  # type: ignore[attr-defined]
    
  • 通过配置文件排除存根:在项目根目录的mypy.ini或pyproject.toml中添加规则,指定忽略dns/query.pyi存根文件:
    若使用mypy.ini:
    [mypy]
    exclude = .*/dns/query\.pyi$
    
    若使用pyproject.toml:
    [tool.mypy]
    exclude = [".*/dns/query\\.pyi$"]
    
  • 命令行参数排除:运行mypy时直接通过参数指定排除目标存根:
    mypy --exclude 'dns/query\.pyi' your_script.py
    

注意:排除存根文件后,mypy会直接解析query.py源码做类型推断,可能因源码缺少类型注解导致部分检查精度下降,但能解决当前的报错问题。

内容的提问来源于stack exchange,提问作者Martin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 11:02:00