答案是Sublime Text未找到python.exe,主因是构建系统路径错误、PATH未被继承或调用名不匹配;需检查绝对路径格式、重启编辑器、确认构建系统启用状态及编码配置。

Sublime Text 报 [WinError 2] 系统找不到指定的文件
这错误不是 Python 代码错了,而是 Sublime 根本没找到 python.exe。它在调用子进程时,系统返回 ERROR_FILE_NOT_FOUND —— 通常就是路径写错、PATH 没生效,或名字对不上。
常见触发场景:
- 终端里能跑
python --version,但 Sublime Ctrl+B 就报错 → Sublime 启动时没继承你后来加的 PATH,必须完全退出再重启 - 用的是 Anaconda 或 Windows Store 版 Python → 它们提供的是
python.exe,但默认构建系统写的是"cmd": ["py", "-u", "$file"],而系统里没有py.exe - 路径含空格(比如
C:Program FilesPython312python.exe)→cmd数组第一项必须用双引号包裹,且推荐用正斜杠:"C:/Program Files/Python312/python.exe" - 手动改过
Python.sublime-build但保存到了错误位置 → 必须放在Packages/User/目录下,不能放安装目录或Packages/Python/
Ctrl+B 提示 “No build system”
这不是构建系统写得不对,是 Sublime 压根没加载它。它对文件名、路径、编码、JSON 格式都极其敏感,错一点就静默忽略。
检查清单:
- 文件是否保存在
Packages/User/?用Preferences → Browse Packages…打开,确认路径正确 - 文件名是否合法?只能含字母、数字、
_、-,例如Python3.sublime-build✅,My Python Build.sublime-build❌ - JSON 是否有语法错误?不允许注释(
//或/* */)、末尾不能多逗号、反斜杠必须转义("C:\test.py",不是"C: est.py") - 编码是否为 UTF-8 无 BOM?用 VS Code 或 Notepad++ 另存时选对格式,记事本默认会加 BOM
- 保存后是否完全退出 Sublime(包括托盘进程)再重启?不重启 = 缓存未刷新 = 文件被无视
构建系统存在但 Ctrl+B 不走它
Sublime 不会自动识别你新建的构建系统,也不会按文件后缀智能切换——它只认菜单里当前选中的那个。
必须手动绑定:
- 确认右下角状态栏显示的是
Python,不是Plain Text或Python 3(后者可能是插件改写的 scope) - 按
Ctrl+Shift+P→ 输入Build: Select Build System→ 选中你的Python3(注意大小写) - 顶部菜单
Tools → Build System必须显示你刚选的名字,而不是Automatic - 如果用了 Anaconda 或其他语法增强插件,
selector可能需要扩展:比如"selector": "source.python, source.python.anaconda" - 文件必须以
.py结尾,且没被ignored_packages屏蔽掉 Python 语法包
输出中文乱码或报错信息看不懂
乱码本质是 Python 输出字节流(GBK)和 Sublime 解码方式(UTF-8)不匹配。光改源文件编码声明或只加 "encoding": "utf-8" 没用。
必须同时配置三项:
-
"cmd": ["python", "-u", "$file"]→-u强制无缓冲,避免编码判断被缓存干扰 -
"encoding": "utf-8"→ 告诉 Sublime 用 UTF-8 解码控制台收到的字节 -
"env": {"PYTHONIOENCODING": "utf-8", "PYTHONUTF8": "1"}→ 让 Python 进程本身也用 UTF-8 输出错误和 print 内容
别用 chcp 65001 && python -u $file 这种写法,Sublime 构建系统不走 cmd 的代码页逻辑,反而更不可控。


















