Sublime Text 4 运行 Python 必须先验证系统 python 命令可用,再配置构建系统:确保环境变量正确、使用含 "-u" 参数的 JSON 配置、检查文件保存、语法模式及构建系统是否选中。

Sublime Text 4 安装后必须先验证 Python 是否真可用
不能只看“电脑上装了 Python”就认为能跑起来。Sublime 本身不带解释器,它只是调用你系统里的 python 或 python3 命令。很多人按 Ctrl+B 没反应,第一原因就是命令行里 python --version 都报错。
打开 CMD / Terminal,执行:
python --version
如果提示 'python' is not recognized,说明环境变量没配好——别急着进 Sublime 配构建系统,先解决这个。
- Windows 用户:安装 Python 时务必勾选 “Add Python to PATH”,若已安装,可手动把 Python 安装目录(如
C:UsersXXXAppDataLocalProgramsPythonPython312)和Scripts子目录加到系统 PATH - macOS / Linux:检查
which python3输出路径,再确认该路径是否在 shell 的$PATH中(常见于 ~/.zshrc 或 ~/.bashrc 未重载) - 验证成功后,再试
python -c "print('ok')",能输出才算真正就绪
构建系统里写错 cmd 或漏掉 -u 参数会静默失败
Sublime 运行 Python 脚本靠的是构建系统(.sublime-build 文件),不是“点一下就运行”。默认没有 Python 构建项,必须手动新建。最常踩的坑是复制网上旧配置,或路径写错、参数缺失。
正确做法:Tools → Build System → New Build System…,粘贴以下内容(Windows 示例):
{
"cmd": ["python", "-u", "$file"],
"file_regex": "^[ ]*File "(.+?)", line ([0-9]+)",
"selector": "source.python",
"encoding": "utf-8"
}-
"cmd"用python而非硬编码绝对路径,前提是环境变量已生效;若需强制指定,写成["C:\Python312\python.exe", "-u", "$file"](注意双反斜杠) -
-u参数必不可少:关闭输出缓冲,否则 print() 不会实时刷到 Sublime 控制台,容易误判“没运行” -
file_regex决定错误能否跳转到对应行,别删;selector确保只对 .py 文件生效 - 保存为
Python.sublime-build,之后在 Tools → Build System 下选它
中文输出乱码?不是汉化问题,是编码链断在三处
哪怕文件保存为 UTF-8,控制台仍显示 或空格,说明编码流没贯通。这不是插件或主题的事,而是 Sublime、Python 解释器、终端三者之间没对齐。
- 文件本身:用 Sublime 打开 .py 文件 → 右下角点击编码名(如 UTF-8)→ 选 “Save with Encoding” → UTF-8
- 代码头部:加
# -*- coding: utf-8 -*-(虽 Python 3 默认 UTF-8,但显式声明防意外) - Sublime 设置:Preferences → Settings → 在右侧 User 设置中加
"default_encoding": "UTF-8" - Windows 终端(关键!):CMD 默认是 GBK,需运行
chcp 65001切换 UTF-8;PowerShell 用户还需确认$OutputEncoding = [console]::InputEncoding = [console]::OutputEncoding = New-Object System.Text.UTF8Encoding
为什么 Ctrl+B 没反应?先查这三件事
不是所有没输出都叫“运行失败”。很多情况根本没触发构建,只是安静地跳过了。
- 当前文件没保存:Sublime 的
$file变量要求文件必须已保存且有扩展名(.py),未保存的 Untitled 会静默忽略 - 构建系统没选对:右下角状态栏应显示 “Python”,而不是 “Automatic” 或其他;Tools → Build System 必须手动选一次
- 文件语法模式不对:左下角应显示 “Python”,如果显示 “Plain Text”,按
Ctrl+Shift+P→ 输入 “Set Syntax: Python” 回车
真正的运行失败通常伴随红色错误文本,比如 ImportError 或 SyntaxError,那才是代码或依赖的问题;没任何反馈,大概率卡在这三个基础环节上。

















