使用Conda与VS Code时,如何在Django项目中自定义类型检查范围?
在Django项目中仅检查自定义带类型提示代码的方案
完全可以实现只检查你自己添加了类型提示的代码,同时跳过Django官方代码及第三方依赖。下面针对VS Code + Conda环境,给出两种常用工具的配置方案:
方案一:用Pylance(VS Code默认推荐)
Pylance是VS Code官方的Python语言服务,自带类型检查能力,配置起来更简洁:
- 打开VS Code的工作区设置(
.vscode/settings.json),添加以下配置:
{ // 排除Django依赖目录和虚拟环境 "python.analysis.exclude": [ "**/site-packages/django/**", "**/venv/**", "**/third-party-apps/**" // 项目中如果有第三方Django应用也可添加 ], // 仅检查带有类型注释的文件 "python.analysis.onlyCheckFilesWithTypeAnnotations": true, // 类型检查严格程度,可选"basic"或"strict",按需调整 "python.analysis.typeCheckingMode": "basic" }
- 确保你的Conda环境已关联到VS Code,工具会自动使用当前环境的依赖。
方案二:用mypy(主流类型检查工具)
如果偏好mypy,可通过配置文件实现需求:
- 在Conda环境中安装mypy:
conda install mypy
- 在项目根目录创建
mypy.ini配置文件:
[tool.mypy] # 排除不需要检查的目录 exclude = [ "venv/.*", ".*site-packages/django/.*", "third-party-apps/.*" ] # 不检查未添加类型提示的函数 check_untyped_defs = False # 不强制检查调用未加类型的函数 disallow_untyped_calls = False
- 在VS Code工作区设置中启用mypy并指定Conda环境中的路径:
{ "python.linting.mypyEnabled": true, "python.linting.mypyPath": "/your/conda/env/path/bin/mypy" }
(替换路径为你Conda环境下mypy的实际位置,比如~/miniconda3/envs/your-env/bin/mypy)
注意事项
- 不管用哪种工具,你自己编写的Django应用代码里,只要添加了类型提示就会被检查,未添加的部分会自动跳过。
- 如果项目中有自定义的Django扩展或第三方应用需要检查,只需从排除列表中移除对应的目录即可。
内容的提问来源于stack exchange,提问作者JasonTS
相关产品推荐
相关产品推荐

