mypy配置中[mypy-xxx.*]规则不生效 如何为指定子文件夹设置专属检查规则
问题原因
[mypy-mytypes.*]这类模块级配置是按照Python导入路径匹配,不是直接匹配文件系统路径。你之前的配置不生效,是因为mypy无法将.../viv/mytypes下的文件识别为mytypes.*模块,和执行mypy时的工作目录、Python搜索路径配置有关。
解决方案
下面提供两种稳定的修复方式,优先选择第二种路径匹配方案,不受执行环境影响:
方案1:修复原有模块匹配规则
在基础[mypy]块中添加Python路径配置,确保mypy无论在哪个工作目录执行,都能识别mytypes为顶层模块:
[mypy] mypy_path = $MYPY_CONFIG_FILE_DIR/stubs # 新增:把mypy.ini所在的viv目录加入Python搜索路径 pythonpath = $MYPY_CONFIG_FILE_DIR [mypy-mytypes.*] ignore_missing_imports = true allow_untyped_globals = true
方案2:路径匹配规则(更推荐)
如果你的mypy版本≥0.990,直接用路径匹配规则,完全不需要关心模块导入路径,精准匹配mytypes目录下的所有文件:
[mypy] mypy_path = $MYPY_CONFIG_FILE_DIR/stubs overrides = [ { "path": "$MYPY_CONFIG_FILE_DIR/mytypes/**/*.py", "ignore_missing_imports": true, "allow_untyped_globals": true } ]
验证方式
配置修改完成后,执行mypy --strict mytypes/,如果没有输出对应规则的报错即为配置生效。
内容的提问来源于stack exchange,提问作者Greedo
相关产品推荐
相关产品推荐

