Sublime Text 运行 Python 需手动配置 Build System:必须使用解释器绝对路径、添加 -u 参数禁用缓冲、包含 $file 动态传入当前文件,三者缺一不可,否则 Ctrl+B 会报错或静默失败。

Ctrl+B 能运行,但默认不工作——Sublime Text 本身不执行代码,只调用你系统里已安装的解释器或编译器;配置错路径、漏 -u、没写 $file,都会导致报错或静默失败。
Build System 必须填对这三项:路径、-u、$file
构建系统不是“选个语言就行”,而是精确告诉 Sublime:“去哪找解释器”“怎么传参数”“运行哪个文件”。常见错误包括:
-
"cmd": ["python", "$file"]—— Windows 上若没把 Python 加进 PATH,会报'python' is not recognized;必须用绝对路径,比如"C:/Python311/python.exe" - 漏掉
-u参数 —— 输出会缓冲,print("hello")可能卡住不显示,含input()时直接阻塞 - 写成
"./script.py"或硬编码路径 ——$file是 Sublime 动态替换的当前文件全路径,删了它就等于没指定要运行谁 - 文件没保存或后缀不是
.py—— Sublime 不识别语法类型,selector匹配失败,构建系统根本不会被激活
中文输出乱码?别改文件编码,改构建命令
Windows 命令行默认 GBK,而 Python 文件是 UTF-8,直接跑会崩。解决方案不是在 Sublime 里调设置,而是让构建命令先切编码:
- 在
cmd里加chcp 65001 &:例如["chcp 65001 & python -u", "$file"],并设"shell": true - Linux/macOS 不需要这步,但要注意终端 locale 是否为
en_US.UTF-8或zh_CN.UTF-8 - 别依赖
# -- coding: utf-8 --注释——它只影响源码解析,不解决终端输出编码问题
有 input() 就卡住?这不是 Bug,是设计限制
Sublime 的输出面板(Output Panel)是只读的,不提供 stdin 输入能力。你看到光标停着,其实是 input() 在等键盘输入,但它收不到。
- 临时方案:用
Terminus插件开外部终端运行,配置"target": "terminus_exec",命令写成["python", "-u", "$file"] - 调试替代:用
SublimeREPL插件 →Tools → SublimeREPL → Python → RUN current file,它起的是真 REPL,支持交互 - 别试
python -m pdb直接跑——pdb 依赖交互式终端,输出面板里敲n或c没响应
Node.js 调试连不上 chrome://inspect?先看这三处
Sublime 启动的 Node 进程是独立子进程,Chrome 不自动发现它。排查顺序不能乱:
- Node 版本低于 v6.3?
--inspect-brk不支持,换--debug-brk(但 Chrome 已弃用,建议升 Node) - 构建命令写的是
--inspect-brk=9229,缺localhost:—— v14+ 默认绑定127.0.0.1,必须显式写--inspect-brk=localhost:9229 - Chrome 没开远程发现:访问
chrome://inspect→ 右上角Configure…→ 手动加localhost:9229(端口必须和构建命令一致)
别碰“全局开启 remote debugging”这种说法——它对 Sublime 启动的进程无效,纯属误导。

















