mypy无法识别最新版attrs,适配标准attrs用法需特殊配置吗?
解决mypy无法识别最新版attrs的问题
问题原因
核心问题是types-attrs版本与attrs严重不匹配:你安装了attrs 23.1.0,但配套的类型存根包types-attrs停留在19.1.0,这个版本只适配多年前的attrs旧版本,完全无法识别新版attrs的API结构,因此触发import-not-found错误,进而导致后续类结构解析失败。
解决方案
方案1:升级types-attrs到匹配版本
卸载过时的类型存根包,安装与当前attrs版本兼容的最新版:
pip uninstall -y types-attrs && pip install types-attrs --upgrade
方案2:直接卸载types-attrs(推荐)
从attrs 21.0.0开始,官方已经内置了完整的PEP 484兼容类型注解,无需依赖第三方类型存根包。直接卸载types-attrs即可:
pip uninstall -y types-attrs
额外配置检查
确保你的mypy配置文件(mypy.ini或pyproject.toml)没有以下错误设置:
- 不要开启
ignore_missing_imports = true,这会掩盖真实问题 - 如果使用attrs的装饰器(如
@define、@dataclass),确保mypy配置中未禁用attrs插件(新版mypy默认自动启用该插件)
验证修复
重新运行mypy命令:
mypy somefile.py
此时import-not-found错误及后续类结构解析错误应该全部消失。
内容的提问来源于stack exchange,提问作者Y123
相关产品推荐
相关产品推荐

