先确认code runner是否启用:打开扩展面板搜索code-runner,确保状态为“已启用”且executormap中对应语言命令非空、无拼写错误,如python应为"python -u"。

点“Run Code”没反应,先查 code-runner 是否启用
“没反应”大概率不是 VSCode 坏了,而是 code-runner 扩展根本没在干活。它被禁用、没装、或配置空了,都会静默失败。
检查步骤:
- 按
Ctrl+Shift+X打开扩展面板,搜code-runner,确认状态是“已启用”,不是“已禁用”或灰掉 - 点击右下角齿轮图标 → “Extension Settings” → 搜索
executorMap→ 展开后找到你当前语言(如python或javascript)→ 确认值类似"python -u"或"node",不能是空字符串、拼错的pyhton,也不能漏掉-u(Python 下避免缓冲导致输出延迟) - Windows 用户注意路径分隔符:如果手动填了解释器绝对路径,必须用正斜杠
/或双反斜杠\,比如"C:/Users/name/AppData/Local/Programs/Python/Python311/python.exe"
F5 调试报 “Cannot find program” 或直接不弹环境选择
F5 启动的是调试器(Debugger),和 code-runner 完全是两套机制。不弹环境选择,说明调试链第一步就断了。
常见卡点:
- 当前文件后缀不匹配:打开的是
index.html却按 F5,VS Code 不知道该用哪个调试器;确保文件是.py、.js、.cs等有对应调试扩展支持的类型 - 缺少语言调试扩展:比如没装
ms-python.python(Python)、ms-dotnettools.csharp(C#)、或ms-vscode.js-debug(JS/TS)——装完必须重启 VS Code -
launch.json里program字段写死了绝对路径(如"C:/project/app.py"),换机器或用户就失效;换成"${file}"或"${workspaceFolder}/src/index.js"更可靠 - Node.js 项目用了 ESM(
"type": "module"),但launch.json没加"runtimeArgs": ["--experimental-specifier-resolution=node"],会直接退出
终端能跑,但 Run Code 或调试器报 ModuleNotFoundError
这不是代码问题,是环境错位:你在终端里手动激活了虚拟环境(比如 source venv/bin/activate),而 code-runner 和调试器默认用的是系统 Python 或 VS Code 自己选的解释器。
解决方法:
- 在 VS Code 终端里运行
which python(macOS/Linux)或where python(Windows),复制完整路径 - 在设置中搜索
python.defaultInterpreterPath,粘贴进去;或者直接改code-runner.executorMap的 Python 条目为:"/path/to/venv/bin/python -u"(macOS/Linux)或"C:\path\to\venv\Scripts\python.exe -u"(Windows) - 别依赖
python命令简写——macOS 上它可能指向 Python 2,Linux 上某些发行版默认没装python命令,只装了python3
所有方式都失败,先验证基础执行链是否通
绕过所有插件和配置,直连系统命令行,这是最干净的验证方式。通了,说明问题出在 VS Code 配置层;不通,就是环境本身没搭好。
操作顺序:
- 按
Ctrl+`打开集成终端 - 输入
node -v或python -v或dotnet --version,看是否返回版本号;如果报“不是内部命令”,说明 PATH 没配对,或程序根本没装 - 再试运行当前文件:
node index.js、python main.py、dotnet run—— 成功,证明解释器/运行时正常;失败,就不是 VS Code 的问题 - 如果终端里也失败,但你确定程序装了,检查是否被杀毒软件拦截(尤其是 Windows Defender 或 macOS Gatekeeper);临时关掉防护软件重试一次
最容易被忽略的是:VS Code 启动时继承的 PATH 可能和你手动打开的终端不同。重装 VS Code 时没勾选 “Add to PATH”(Windows)或没运行 “Shell Command: Install 'code' command in PATH”(macOS/Linux),会导致它根本看不到你装的命令。











