答案是Sublime Text未正确配置Python解释器绝对路径。需在自定义Build System中明确指定终端可执行的python.exe或python3绝对路径,Windows路径含空格时须用双引号包裹,且cmd首项必须为绝对路径、第二项为-u、第三项为$file。

报错“[WinError 2] 系统找不到指定的文件”或“Unable to find python command”
这不是 Sublime 坏了,是它压根没看到你的 Python 解释器——它不读系统 PATH,也不继承终端环境变量,只认你写死在 .sublime-build 里的绝对路径。
先确认终端里真能跑:
macOS/Linux 执行 which python3(不是 python),常见输出如 /opt/homebrew/bin/python3 或 /Users/you/.pyenv/versions/3.12.1/bin/python3;
Windows 推荐用 PowerShell 执行 where python3,选带 Python312 的那条,比如 C:\Users\Alice\AppData\Local\Programs\Python\Python312\python.exe。
如果命令无输出,说明 Python 没装好,或者根本没加进系统环境变量——这时修 PATH 才是第一步,不是改 Sublime。
-
cmd数组第一项必须是解释器**绝对路径**:Windows 路径含空格时,整个路径用双引号包裹,例如"C:/Program Files/Python312/python.exe"(推荐正斜杠,避免反斜杠转义) - 第二项必须是
-u:禁用 stdout 缓冲,否则print()不刷新、input()直接卡住 - 第三项必须是
$file:表示当前打开的 .py 文件,不能写成main.py或漏掉
用了虚拟环境却 import 失败
你在终端激活了 venv 并 pip install requests 成功,但 Sublime 里 import requests 报 ModuleNotFoundError——99% 是因为构建系统还在调用全局 Python。
Sublime 不知道你“刚刚在终端里 source venv/bin/activate”这回事,它只认你配置里写的路径。
立即学习“Python免费学习笔记(深入)”;
- 先激活环境:
source venv/bin/activate(macOS/Linux)或venv\Scripts\activate.bat(Windows) - 再执行
which python3或where python3,拿到的是虚拟环境内解释器路径,例如/path/to/your/venv/bin/python或C:\project\venv\Scripts\python.exe - 把这个路径填进
.sublime-build的cmd第一项,而不是系统默认的python3
运行后控制台闪退或中文乱码
闪退通常是因为没加 -u 参数,导致缓冲未刷新就结束;中文乱码则多因编码不一致或环境变量缺失。
Windows 下尤其容易出问题:即使终端能正常显示中文,Sublime 构建系统仍可能因 PYTHONIOENCODING 缺失而报 [Decode error - output not utf-8]。
- 在
.sublime-build中添加"env": {"PYTHONIOENCODING": "utf-8"} - 确保文件本身保存为 UTF-8 编码(Sublime 右下角状态栏会显示)
- 若代码含中文字符串,建议在文件首行加
# -*- coding: utf-8 -*-(虽 Python3 默认支持,但部分旧插件或 Shell 环境仍依赖此声明) - Windows 用户可尝试加
"shell": true,让命令走 shell 层,有时能绕过某些编码拦截
Sublime Text 4 报错 py 命令不存在
新版 Sublime 默认用 py 启动 Python,但 Conda、Miniconda、ArcGIS Pro 等第三方环境根本不带 py.exe——它只存在于微软官方安装包里。
别去折腾注册表或重装 Python,直接改构建系统最稳。
- 把
cmd里的["py", "-u", "$file"]改成["/your/path/to/python.exe", "-u", "$file"] - 不要试图在 Python 安装目录里复制
python.exe并改名成py.exe:容易引发 PEP 397 行为冲突,且下次更新可能覆盖 - 如果你用的是 Anaconda,路径通常是
C:\Users\YourName\Anaconda3\python.exe或/opt/anaconda3/bin/python
真正麻烦的不是路径本身,而是路径背后那个被忽略的上下文:虚拟环境是否激活、终端能否复现相同行为、以及 Sublime 是否重启过——这些细节不验证,光改 JSON 很难一次到位。


















