如何让mypy完全忽略指定文件(非仅忽略错误)
让mypy彻底跳过指定文件/模块检查的方法(解决jax类型检查卡顿)
核心需求是让mypy完全跳过指定文件/模块的解析与检查,而非仅忽略错误(后者仍会解析代码,无法解决jax导致的卡顿)。以下是具体实现方式:
方法1:通过配置文件全局设置(推荐)
创建或修改mypy的配置文件(支持mypy.ini、pyproject.toml等格式),使用exclude选项指定要彻底跳过的路径(正则表达式匹配)。
示例1:mypy.ini格式
[mypy] # 彻底跳过jax整个库,以及当前目录下的main.py exclude = ^jax/|^main\.py$
示例2:pyproject.toml格式
[tool.mypy] exclude = [ "^jax/", # 跳过jax库所有文件 "^main\\.py$" # 跳过当前目录下的main.py ]
正则说明:
^jax/匹配所有以jax/开头的路径(覆盖jax库的所有模块)^main\.py$精确匹配当前目录下的main.py- 多个规则用
|分隔(mypy.ini)或放在列表中(pyproject.toml)
方法2:命令行临时指定
执行mypy时通过--exclude参数直接指定要跳过的路径:
mypy --exclude '^jax/' main.py
该方式适合临时测试,无需修改配置文件。
方法3:针对第三方库的替代方案(非彻底跳过,但更轻量)
如果仅需避免jax的类型检查耗时,也可将jax标记为无需检查的第三方库:
[mypy-jax.*] ignore_missing_imports = True
但此方法仅忽略jax的类型错误,mypy仍会部分解析代码,卡顿问题可能无法完全解决,因此优先推荐exclude方式。
验证效果
执行mypy -v main.py后,若日志中不再出现Parsing /path/to/jax/...相关内容,说明已成功彻底跳过jax的检查,卡顿问题会消失。
内容的提问来源于stack exchange,提问作者HiroIshida
相关产品推荐
相关产品推荐

