code --disable-extensions 是唯一可信起点,它跳过所有第三方扩展,仅保留 VSCode 自带的 Python 语法高亮和基础编辑能力,用于快速定位插件冲突或 Python 扩展损坏问题。

code --disable-extensions 是唯一可信起点
别管右键菜单有没有“Run Python File”、别试重启窗口、别先去 settings.json 里翻配置——第一件事就是终端执行 code --disable-extensions。它会跳过所有第三方扩展,只保留 VSCode 自带的 Python 语法高亮和基础编辑能力。如果这时你能正常选解释器、点 ▶️ 运行、F5 弹出环境选择、Ctrl+Click 跳转定义,那问题 100% 出在插件上;如果还报错或卡住,说明是 Python 扩展本身损坏、VSCode 更新异常,或者 settings.json 里写了非法配置(比如 "python.defaultInterpreterPath": /usr/bin/python3 缺引号)。
Developer: Start Extension Bisect 必须在问题复现前触发
这个命令不是“点开插件面板后找”,而是在干净启动后、问题还没发生时立刻按 Ctrl+Shift+P(Win/Linux)或 Cmd+Shift+P(macOS),松手后**马上输入并回车**。它会自动把所有已安装插件(包括已被禁用但没卸载的)分组启用/禁用,每次重启后只问你一个判断:“问题是否出现?”
- 回答“否”:它继续缩小范围,通常 3–4 轮就能锁定到 1–2 个嫌疑插件
- 回答“是”:它换另一组测试,避免误判
- 如果 VSCode 启动即崩溃进不去,先用
code --disable-extensions进去,再运行该命令 - 千万别在右键菜单已经空白、补全已经失效的状态下运行——此时反馈失真,结果不可靠
重点关注 ms-python.python 和 ms-python.pylance 的加载状态
这两个插件不是“装了就能用”,它们常因版本不匹配、Python 环境路径冲突或残留旧实例导致功能静默失效。打开命令面板运行 Developer: Show Running Extensions,重点看:
快速生成专业的 Python 脚本和应用代码。一键创建完整项目结构,支持CLI、API、爬虫、Bot、Django等多种项目类型,包含完整的项目结构、配置文件、依赖管理、测试、README和文档。
-
Activation Time (ms)超过 1000 的,尤其是ms-python.pylance—— 它加载慢会拖垮整个 Python 支持链 -
Status显示Activation failed或为空白:说明它根本没起来,但可能还在监听事件,持续占用 CPU - 即使你禁用了
ms-python.python,它的旧目录仍可能被加载:Linux/macOS 下直接删掉~/.vscode/extensions/ms-python.python-*;Windows 下进%USERPROFILE%.vscodeextensions手动清空对应文件夹
AI 补全插件和 Code Runner 同时启用必出问题
通义灵码、Copilot、CodeWhisperer 这类插件会深度劫持 onType、onDidSaveTextDocument 等核心事件,而 code-runner 又依赖这些事件触发执行。两者共存时,常见现象是:▶️ 按钮点击后无响应、终端一闪而过、甚至 F5 调试器拒绝初始化。
立即学习“Python免费学习笔记(深入)”;
- 只保留一个 AI 插件,其余全部**卸载**(不是禁用)——禁用不清内存、不退监听器
- 检查
code-runner.executorMap中python对应值是否为"python -u",不能是空字符串、拼错的"pyhton -u",也不能漏掉-u(否则输出缓冲卡住) - Windows 用户注意路径:若填绝对路径,必须用正斜杠
C:/Python311/python.exe或双反斜杠C:\Python311\python.exe
真正麻烦的不是插件太多,而是某些插件(比如旧版 ms-python.python)即使被禁用,也会在 Extension Host 进程里残留初始化逻辑——这时候 UI 上看起来“已禁用”,实际仍在后台抢资源、注册命令、干扰调试链路。删目录比点禁用按钮更彻底。

















