按f5报“找不到launch.json”是因为vscode默认只支持调试启动,不提供一键执行;应安装code runner扩展并配置runinterminal为true、preservefocus为false,或用tasks.json定义python -m任务。

为什么直接按 F5 会报错“找不到 launch.json”
VSCode 默认不预置 Python 调试配置,按 F5 会提示生成 .vscode/launch.json。这不是环境没装好,而是 VSCode 把“运行”和“调试”做了分离——它默认只支持调试启动,不提供一键执行(即类似终端里 python script.py 那种无调试、无断点的快速运行)。
解决方向只有两个:用扩展补功能,或改终端行为。别折腾手动配 launch.json 来“模拟运行”,那绕远了还容易触发调试器开销。
安装 Code Runner 扩展并禁用调试模式
这是最贴近“一键运行”直觉的方案。Code Runner 插件默认用 python 命令执行当前文件,但有个关键陷阱:它默认勾选「Run in Terminal」却仍可能唤起调试控制台,尤其在有断点或旧配置残留时。
- 在扩展市场搜
Code Runner,装官方作者Jun Han的那个 - 安装后进设置,搜
code-runner.runInTerminal,确保为true - 务必关闭
code-runner.preserveFocus(设为false),否则终端不自动聚焦,你敲完回车才发现没反应 - 可选但推荐:把
code-runner.executorMap中的python改成python -u,避免输出缓存导致 print 不实时显示
之后右键 → “Run Code”,或快捷键 Ctrl+Alt+N(Win/Linux)/Cmd+Option+N(macOS),就是干净的终端执行。
用 Tasks 自定义 python -m 命令运行模块
如果脚本依赖包内相对导入(比如 from .utils import helper),直接跑文件会报 ImportError。这时必须用 python -m 模式,而 Code Runner 默认不支持。
你需要手动加一个 .vscode/tasks.json:
{
"version": "2.0.0",
"tasks": [
{
"label": "python -m current",
"type": "shell",
"command": "python -m ${fileBasenameNoExtension}",
"group": "build",
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "shared",
"showReuseMessage": true,
"clear": true
}
}
]
}
保存后,Ctrl+Shift+P → 输入 Tasks: Run Task → 选 python -m current。注意:${fileBasenameNoExtension} 不含路径,所以当前文件必须在 Python 包根目录下,且该目录需在 PYTHONPATH 或已安装为可导入包。
终端自动激活虚拟环境后仍报 command not found
常见于 macOS/Linux 用户:VSCode 终端看起来已激活 venv(提示符带 (venv)),但 python 命令仍指向系统 Python,导致库找不到或版本错乱。
根本原因是 VSCode 启动终端时未加载 shell 配置(如 ~/.zshrc),所以 which python 返回的是系统路径。
- 检查
python是否真在 venv 里:在终端中手动执行source venv/bin/activate && which python - 若正确,就在 VSCode 设置里搜
terminal.integrated.inheritEnv,设为true - 更稳的法子:在
.vscode/settings.json加"python.defaultInterpreterPath": "./venv/bin/python",让所有 Python 相关操作(包括 Code Runner)强制用这个解释器
别信“重启 VSCode 就好”——得确认终端里 echo $PATH 确实包含 venv 的 bin 目录才算生效。
真正卡住人的往往不是“怎么配”,而是“为什么配了还不行”:比如 Code Runner 用了系统 Python 却没报错,只默默导入失败;或者 tasks.json 里写死了路径,换项目就失效。盯住解释器路径和终端环境变量,比堆配置重要得多。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!











