VSCode终端输python报“command not found”不是Python未安装,而是桌面图标启动导致未继承shell完整环境(如PATH缺失),which python可能为空;根治法为在系统终端执行code .启动,macOS/Linux可source ~/.zshrc临时修复,Windows建议用py -3替代python命令。

为什么终端里输 python script.py 报 command not found
不是 Python 没装,而是 VSCode 终端没继承你 shell 的完整环境。桌面图标启动的 VSCode 默认只带最小 PATH,which python 可能返回空,node -v 也可能失败。
- 临时验证:在终端里手动运行
source ~/.zshrc(macOS/Linux)或RefreshEnv(PowerShell),再试命令 - 根治办法:用终端启动 VSCode——关掉当前实例,在系统终端里执行
code . - Windows 用户注意:
python命令可能被系统策略禁用,优先用py -3 script.py - Python 虚拟环境必须手动激活:
source venv/bin/activate(Linux/macOS)或venvScriptsActivate.ps1(PowerShell)
launch.json 里 console 字段设成什么才真正“看到输出”
VSCode 不会自动把 print() 或 console.log() 推到你眼睛盯着的那个面板上——它严格按 console 字段路由输出。默认值 "internalConsole" 对 Python/Node.js 很不友好,尤其带 input() 或缓冲输出时。
-
"console": "integratedTerminal":输出进下方终端,支持交互、ANSI 颜色、滚动历史,95% 场景应选它 -
"console": "internalConsole":调试控制台,适合纯日志查看,但input()卡死、print()可能延迟或丢失 -
"console": "externalTerminal":弹独立窗口,仅当需要捕获Ctrl+C或清屏等系统级行为时才用 - 没写这个字段?VSCode 会回退到语言扩展的默认值,而 Python 扩展旧版默认是
internalConsole
Python 脚本运行没反应?先查是不是用了 pythonw.exe
Windows 上 Anaconda 或某些安装包默认注册 pythonw.exe 为 Python 解释器——它专为 GUI 程序设计,**静默丢弃所有标准输出**,连终端都不会显示一行 print()。
- 打开设置 → 搜索
python.defaultInterpreterPath→ 点击“在 settings.json 中编辑” - 找到类似
"python.defaultInterpreterPath": "C:\Users\xxx\anaconda3\pythonw.exe" - 把
pythonw.exe改成python.exe,保存后重启 VSCode - 验证:终端里运行
where python,路径末尾必须是python.exe,不是pythonw.exe
想让代码总在同一个终端里跑,而不是每次新开一个
VSCode 默认每次运行都新建终端 tab,容易堆满、切换混乱。真正可控的方式是聚焦已有终端再触发运行,而非依赖自动创建。
- 先用
Ctrl+Shift+`打开终端,右键标签重命名为Python-Dev这类易识别名 - 点击该终端标签,确保它处于活动状态(标签变亮、光标在其中闪烁)
- 右键 Python 文件 → 选
Run Python File in Terminal,代码就会在当前活动终端执行,并自动cd到文件目录 - 如需更稳定复用,装 Code Runner 扩展,设
code-runner.runInTerminal为true,它会默认重用当前终端 - 别指望
tasks.json指定“某个已命名终端”——VSCode 任务系统不支持绑定到特定终端实例
pythonw.exe 换成 python.exe,或者加一行 "console": "integratedTerminal",就能立刻从“没输出”变成“全看见”。


















