必须用绝对路径配置Sublime的Python构建系统:先通过which python3(macOS/Linux)或py -3 -c "import sys; print(sys.executable)"(Windows)获取真实路径,再新建Python3.sublime-build文件,内容为{"cmd": ["绝对路径", "-u", "$file"], "selector": "source.python"},保存后手动启用该构建系统。

确认 python3 可执行文件真实路径,不是“能运行”就行
很多人配完 Python3.sublime-build 按 Ctrl+B 没反应,第一反应是配置写错了——其实八成是 python3 命令根本不在系统 PATH 里,或者指向了错误环境(比如虚拟环境里的 venv/bin/python)。Sublime 启动时不继承 shell 的 PATH,所以终端能用 ≠ Sublime 能用。
必须拿到绝对路径:
- macOS/Linux:在终端运行
which python3,得到类似/opt/homebrew/bin/python3或/usr/bin/python3 - Windows:推荐用
py -3 -c "import sys; print(sys.executable)",比where python更准,避免 Microsoft Store 版本或 pyenv 干扰 - 别用
~、%USERPROFILE%这类路径缩写,Sublime 不展开
Build System 必须写绝对路径 + -u 参数,shell_cmd 是坑
用 "cmd" 字段,别碰 "shell_cmd"。后者不支持 stdin 输入(input() 直接 EOF),且 Windows 下编码更难控。正确写法是:
{
"cmd": ["<code>/opt/homebrew/bin/python3</code>", "-u", "$file"],
"file_regex": "^[ ]*File "(*?)", line ([0-9]*)",
"selector": "source.python"
}
关键点:
立即学习“Python免费学习笔记(深入)”;
-
-u必须存在,否则print()缓冲不刷新,input()报EOFError - 路径用正斜杠
/或双反斜杠\,单反斜杠会 JSON 解析失败 - Windows 用户可加
"env": {"PYTHONIOENCODING": "utf-8"}防中文输出乱码,但-u是底线
保存为 Python3.sublime-build,且必须手动选中构建系统
新建 Build System 后,文件名必须是 Python3.sublime-build(后缀严格,不能是 .json 或 .sublime-builds),默认保存位置就是 Packages/User/,别手贱改路径。
保存后不会自动生效——你得手动切换:
- 菜单栏
Tools → Build System → Python3 - 或右下角状态栏点击当前构建系统名称,从列表选
Python3 - 如果没出现,重启 Sublime;如果仍不显示,检查文件是否真存到了
Packages/User/(可通过Preferences → Browse Packages打开目录确认)
想同时保留 Python2 和 Python3?建两个独立 .sublime-build 文件
不要试图在一个文件里动态切版本。直接新建第二个 Build System,比如叫 Python2.sublime-build,内容用 python2 或绝对路径(如 /usr/bin/python2.7)。
这样你在同一个项目里可以:
- 对老脚本右键 →
Set Build System → Python2 - 对新脚本设为
Python3 - 不同文件用不同构建系统,互不干扰
注意:python2 在 macOS/Linux 上可能已移除,Windows 上更少见,优先确认 which python2 是否有输出;没输出就别硬配,徒增维护成本。


















