Sublime Text 运行脚本失败主因是系统环境未正确配置:需确保终端能调用解释器(如 python --version)、.sublime-build 文件存于 Packages/User/ 且命名正确、语法类型与构建系统手动匹配、文件必须先保存,否则 Ctrl+B 静默失败。

Sublime Text 本身不执行任何代码,所谓“运行脚本”只是调用系统命令行工具——配置错路径、选错语法、没保存文件,都会导致 Ctrl+B 静默失败或报错。
确认终端能直接调用解释器
这是 80% 失败的根源。Sublime 的 build system 依赖系统 PATH,不是靠插件或 Sublime 自身能力。
- 打开终端(macOS/Linux)或 PowerShell(Windows),输入
python --version;若失败,再试python3 --version - Windows 用户若两个都报错,大概率是安装时没勾选 Add Python to PATH;重装或手动把 Python 安装目录(如
C:\Users\XXX\AppData\Local\Programs\Python\Python311\)加进系统环境变量PATH - Shell 脚本同理:Linux/macOS 直接试
bash --version;Windows 必须装 Git for Windows,并验证git-bash --version可用
创建正确命名和存放位置的 .sublime-build 文件
文件名必须带 .sublime-build 后缀,且必须存放在 Packages/User/ 目录下,否则 Sublime 不识别。
- 菜单栏 →
Tools → Build System → New Build System…,粘贴以下内容(根据你终端可用命令选其一): - Python(终端认
python):{ "cmd": ["python", "-u", "$file"], "file_regex": "^[ ]*File \"(*?)\", line ([0-9]*)", "selector": "source.python", "working_dir": "${file_path}" } - Python3(终端只认
python3):{ "cmd": ["python3", "-u", "$file"], "file_regex": "^[ ]*File \"(*?)\", line ([0-9]*)", "selector": "source.python", "working_dir": "${file_path}" } - Bash(Windows + Git Bash):
{ "cmd": ["C:/Program Files/Git/git-bash.exe", "--cd=$file_path", "-c", "bash '$file_name'"], "selector": "source.shell", "working_dir": "${file_path}" } - 保存时命名为
Python.sublime-build或Bash.sublime-build,**不能是.json或无后缀**
确保语法类型和构建系统双向绑定
Sublime 不看文件名或 shebang,只认右下角显示的语法类型(selector)和菜单中手动选中的构建系统。
- 打开脚本后,右下角点击语言名 → 选
Python(.py 文件)或Shell-Unix-Generic(.sh 文件) - 菜单 →
Tools → Build System→ **必须手动点选你刚创建的项**,不能留 “Automatic” - 未保存的文件按 Ctrl+B 会失败,因为
$file是空字符串,命令变成python "" - 改完
.sublime-build文件后,Sublime 不热重载;要么重启,要么删掉Packages/User/.cache/下缓存文件
避开 input() 和中文乱码这两个硬伤
Sublime 的 build panel 是只读输出面板,不提供 stdin 输入能力,也不处理编码协商——这不是 bug,是设计限制。
- 含
input()的 Python 脚本在 build panel 中会卡住不动,必须改用终端运行 - Windows 下默认 cmd 编码是 GBK,而 Python 源码是 UTF-8,
print("你好")会显示成\xe4\xbd\xa0\xe5\xa5\xbd;解决方法只有两种:"encoding": "utf-8"在 build config 中无效,只能换终端,或用chcp 65001临时切 UTF-8(不稳定) - Shell 脚本末尾输出一闪而过?别写
gnome-terminal -e这类脱离构建上下文的命令,直接在脚本末尾加read -p "Press Enter to exit"最可靠
真正容易被忽略的是:build system 的 selector 和编辑器右下角语法必须严格匹配,且 $file 变量要求文件已保存——这两个条件缺一不可,否则 Ctrl+B 就是静默失败,连错误提示都不会给。


















