如何配置VSCode的settings.json使Mypy强制类型提示?
解决VSCode中Mypy强制类型提示不生效的问题
问题排查与修复步骤
1. 修正Mypy参数格式
Mypy的布尔型命令行参数不需要添加=True,直接写参数名即可。你当前配置中带=True的写法会被Mypy识别为无效参数,导致规则不生效。
修改后的mypy-type-checker.args配置:
"mypy-type-checker.args": [ "--disallow-untyped-defs", "--disallow-untyped-calls", "--check-untyped-defs", "--no-implicit-optional" ]
2. 明确指定使用Mypy作为类型检查器
VSCode默认可能用Pylance做类型检查,需要明确配置让Mypy生效,避免冲突。在settings.json中添加:
"python.typeChecking.mode": "strict", "python.typeChecking.typeChecker": "mypy"
如果需要同时保留Pylance的其他功能,也可以设置为"both",但优先确保Mypy单独生效。
3. 验证Mypy环境配置
fromEnvironment策略依赖当前Python环境中安装的Mypy,如果你的环境没装Mypy,扩展会找不到执行程序。可以切换为bundled让扩展使用自带的Mypy,或者先在环境里执行pip install mypy安装Mypy。
修改导入策略的配置:
"mypy-type-checker.importStrategy": "bundled"
4. 确认工作区目录正确
确保VSCode打开的是包含.vscode和src的项目根目录,而不是单独打开src文件夹,否则Mypy可能无法读取根目录的配置文件。
最终完整settings.json示例
{ "mypy-type-checker.importStrategy": "bundled", "mypy-type-checker.args": [ "--disallow-untyped-defs", "--disallow-untyped-calls", "--check-untyped-defs", "--no-implicit-optional" ], "python.typeChecking.mode": "strict", "python.typeChecking.typeChecker": "mypy" }
修改完成后,重启VSCode或通过Ctrl+Shift+P选择「Reload Window」重新加载窗口,此时main.py中无类型提示的test函数会被Mypy标记为错误,显示红色下划线。
内容的提问来源于stack exchange,提问作者Angecide
相关产品推荐
相关产品推荐

