sys.executable 返回当前 Python 进程实际加载的可执行文件绝对路径,精准反映 Sublime 构建系统所用解释器,跨平台可靠,不依赖配置;例如输出 C:/Users/Me/venv/Scripts/python.exe 表示已正确指向虚拟环境。

在 Python 文件里直接打印 sys.executable
这是最可靠、跨平台、不依赖 Sublime 配置的方式。新建一个 test.py,写入:
import sys print(sys.executable)
然后用 Sublime 的 Ctrl+B 运行它——输出的就是当前 Build System 实际调用的 Python 解释器绝对路径。
注意:sys.executable 返回的是进程启动时真正加载的可执行文件,不是别名、软链接或 shell 函数,能精准反映 Sublime 正在用哪个 python.exe 或 python3。
- 如果输出是
/usr/bin/python3,说明你在用系统自带 Python - 如果是
/opt/homebrew/bin/python3,大概率是 Homebrew 安装的 - 若为
C:/Users/Me/venv/Scripts/python.exe,说明构建系统已正确指向虚拟环境 - 若报错
ModuleNotFoundError: No module named 'sys',那根本没跑进 Python,Build System 配置完全失效
用终端查路径,再和 Sublime 对齐
Sublime 不读 $PATH,但你得先确认终端里能拿到真实路径,否则填进去也是错的。
打开终端(macOS/Linux)或 PowerShell(Windows),运行:
- macOS/Linux:
which python3(别用which python,可能指向 Python 2) - Windows:
where python3(优先选带版本号如Python312的那条)
结果必须是一个可执行文件路径,比如 /opt/anaconda3/envs/myenv/bin/python 或 C:Python311python.exe。把这条路径复制下来,后面配 Build System 时直接粘贴。
常见陷阱:
-
which python在 macOS 上可能返回/usr/bin/python(Python 2.7),但你实际想用的是python3 - Conda 用户不能填
conda activate myenv后的 shell 提示符路径,要填which python在激活后输出的真实路径 - 路径含空格(如
C:/Program Files/Python312/)时,Windows 下必须整个字符串用双引号包裹:"C:/Program Files/Python312/python.exe"
检查 Build System 的 cmd 字段是否写对
打开 Tools → Build System → Edit Build System…,看 JSON 里的 "cmd" 数组是不是长这样:
/your/real/path/to/python3
三个位置缺一不可:
- 第一项:必须是绝对路径,不能是
python3或python(除非你确定 PATH 被 Sublime 继承了,但通常不会) - 第二项:固定写
"-u",禁用缓冲;漏掉会导致print()不输出、input()卡死 - 第三项:必须是
"$file",不是"$file_name"或硬编码文件名;否则找不到模块或相对路径文件
Windows 用户特别注意反斜杠:C:Python311python.exe 会因转义失败报 Invalid escape,改用正斜杠 C:/Python311/python.exe 或双反斜杠 C:\Python311\python.exe。
为什么 Preferences → Settings 里改 python_interpreter 没用
那个设置项只对 SublimeREPL 插件生效,和 Ctrl+B 构建系统完全无关。如果你没装 SublimeREPL,或者只是想跑脚本而不是开交互式 REPL,改这个字段毫无作用。
而且 SublimeREPL 已停止维护,ST4 用户更建议换 Terminus 或 CodeRunner。所以别在全局设置里折腾 python_interpreter,专注改 .sublime-build 文件。
真正的关键点就两个:终端里查到的路径是否真实可执行,以及这个路径是否原样、无转义、无拼写错误地写进了 cmd 第一项。其他所有配置都是围绕它服务的。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!











