已排除venv仍被mypy检查PySide6 pyi文件,如何解决?
解决mypy检测PySide6 QtGui.pyi缩进错误的问题
针对你遇到的PYSIDE-2665导致的unexpected indent语法错误,以下是可行的解决办法:
方法一:升级PySide6到修复版本
PYSIDE-2665是PySide6的已知bug,官方已在PySide6 6.4.3及后续版本中修复。直接升级库即可解决:
pip install --upgrade PySide6
方法二:排除有问题的类型文件(无法升级时使用)
若暂时无法升级PySide6,可在pyproject.toml的mypy配置中,直接排除报错的QtGui.pyi文件:
[tool.mypy] disable_error_code = ["import-untyped"] exclude = [ "^.venv/", "^myproject/somefolder/", "^.venv/Lib/site-packages/PySide6/QtGui.pyi$" ] [[tool.mypy.overrides]] module = "PySide6.*" ignore_errors = true
注意路径使用正斜杠,确保正则表达式能精准匹配到该文件。
方法三:禁止mypy检查第三方库类型文件
通过配置follow_imports = silent,让mypy仅检查你的项目代码,不跟随导入去解析第三方库的类型文件:
[tool.mypy] disable_error_code = ["import-untyped"] exclude = ["^.venv/", "^myproject/somefolder/"] follow_imports = silent [[tool.mypy.overrides]] module = "PySide6.*" ignore_errors = true
为什么原有配置无效?
你之前配置的ignore_errors = true是针对模块的语义错误(如类型不匹配),但syntax错误是mypy在解析文件语法阶段触发的,此时模块级的覆盖配置还未生效,因此无法忽略这类错误。
内容的提问来源于stack exchange,提问作者Andrei Miculiță
相关产品推荐
相关产品推荐

