必须安装microsoft官方python插件以启用pylance语言服务,否则torch/tf补全失效;配合jupyter插件实现交互式调试、gitlens快速定位分布式问题、bracket pair colorizer 2解决嵌套括号识别难题。

Python插件必须装对,否则torch和tf补全会失效
VSCode默认不带Python语言服务器,只靠基础语法高亮根本识别不了torch.nn.Module这类动态属性。必须装官方Python插件(由Microsoft发布),它会自动拉起Pylance作为语言服务后端。
常见错误现象:写model.eval()时没补全、跳转定义失败、类型提示全是Any。
- 确认已启用
"python.defaultInterpreterPath"指向你conda或venv里的Python解释器路径 - 禁用第三方Python插件(比如旧版
Python for VSCode),它们和Pylance冲突 - 如果项目用
pyproject.toml,确保tool.pyright配置没覆盖Pylance的类型推导逻辑
Code Runner不适合跑训练脚本,但Jupyter插件能直接调试train.py
深度学习不是写个print就完事——你需要看loss曲线、中间特征图、梯度直方图。Code Runner只能执行单次命令,没法交互式调试。
真正实用的是VSCode内置的Jupyter插件(注意不是第三方vscode-jupyter):
- 把
.py文件里用# %%分块,就能像Notebook一样逐段运行 - 在代码里打
breakpoint(),变量面板直接显示tensor.shape和device信息 - 配合
Python插件,plt.show()图形会内嵌在编辑器里,不用切窗口
调试distributed训练时,GitLens比TODO Tree更关键
多卡训练出错,90%的问题出在rank 0以外的进程日志被吞掉。这时候你得快速定位“谁改过DDP初始化那段”。
GitLens在行号旁直接显示最近一次提交的作者和时间戳,比翻git log快得多:
- 右键某行→
GitLens: Show Blame Annotations,立刻看到这行是不是刚被合并进来的PR改的 - 按
Ctrl+Shift+P搜GitLens: Compare With Branch,对比main和feature/ddp-fix的差异 - 别依赖
TODO Tree——分布式问题很少留// TODO,都是直接硬编码rank == 0漏了同步点
Bracket Pair Colorizer 2能救你的nn.Sequential嵌套地狱
写nn.Sequential(nn.Linear(768, 512), nn.ReLU(), nn.Dropout(0.1), ...)到第7层时,光靠缩进根本分不清哪层对应哪个括号闭合。
Bracket Pair Colorizer 2给每对()、[]、{}上不同颜色,且鼠标悬停自动高亮匹配项:
- 它和
Indent Rainbow是绝配:缩进颜色 + 括号颜色双重校验,避免手抖少写一个) - 注意关掉旧版
Bracket Pair Colorizer,两个插件同时启用会导致颜色错乱 - 如果模型结构里混用
lambda和nn.Module,括号着色比IDEA的结构视图反应更快
深度学习代码里没有银弹插件,但Python + Jupyter + GitLens + Bracket Pair Colorizer 2这四件套,能覆盖从写模型、调训练、查bug到协同开发的完整链路。剩下那些标着“AI增强”的插件,等你debug通torch.compile报错再说。











