必须用绝对路径,不能写python3或python;需通过which python3或where python查真实路径,加-u参数禁缓冲,中文输出需设env:{"PYTHONIOENCODING":"utf8"},文件须存于Packages/User/目录且后缀为.sublime-build。

Build System 里 cmd 路径必须是绝对路径,不能写 python3 或 python
Sublime Text 启动时不继承 shell 的 PATH 环境变量,所以你在终端能直接敲 python3,但在 Build System 里写 "cmd": ["python3", "-u", "$file"] 几乎必然失败,报错 python3: command not found。必须用 which python3(macOS/Linux)或 where python(Windows)查出真实路径,例如 /opt/homebrew/bin/python3 或 C:UsersAliceAppDataLocalProgramsPythonPython311python.exe。
Windows 路径含空格(如 Program Files)时,整个路径必须用双引号包裹,但注意:不是在 JSON 字符串里加转义双引号,而是把整个路径字符串写成带双引号的字面量,比如:"C:\Users\Alice\AppData\Local\Programs\Python\Python311\python.exe";或者改用 shell_cmd + "shell": true 方式绕过解析限制。
-u 参数不能省,否则中文输出可能卡住或乱码
Python 默认启用 stdout 缓冲,print("你好") 可能不立即显示,尤其在 Sublime 的 Build 输出面板中——看起来“程序跑完了但没输出”。加 -u 强制无缓冲,是必须项。
另外,中文输出还受编码影响,建议在 Build 配置中显式加 "env": {"PYTHONIOENCODING": "utf8"},避免 Windows 下默认 cp936 导致的解码异常。不要依赖 "encoding": "utf-8" 字段,它只控制 Sublime 读取输出流的解码方式,不解决 Python 进程本身的编码问题。
Build System 文件必须保存在 Packages/User/ 目录下,且后缀为 .sublime-build
通过 Preferences → Browse Packages 打开目录,确认你保存的位置是 User/ 子目录,不是根目录或别的子文件夹。常见错误是手动存到桌面或下载目录,然后在 Build System 菜单里找不到新选项。
- 文件名建议用
Python3.sublime-build这类清晰名称,避免空格或特殊字符 - 保存后重启 Sublime 或手动触发
Tools → Build System → Refresh Projects(部分版本需要) - 如果菜单里出现多个“Python”选项,注意区分:系统自带的
Python是指向旧版 Python2 的,别选错
验证路径是否生效:看 Build 输出第一行是不是完整路径
配置好后按 Ctrl+B 运行一个简单脚本,比如 print("OK"),观察 Build 输出面板顶部——正常会显示类似:/opt/homebrew/bin/python3 -u "/path/to/test.py"。如果第一行是 [Finished in ...s] 且没这行命令,说明 Build System 根本没被调用,可能选错了构建系统,或文件没设对语法(右下角应显示 Python,不是 Plain Text)。
更隐蔽的问题是虚拟环境路径没对齐:如果你用 venv 或 conda,Build System 必须指向虚拟环境里的 python(如 myenv/bin/python 或 myenvScriptspython.exe),而不是系统全局 Python。否则 import 第三方包会失败,且错误信息里不会提示路径问题,只会报 ModuleNotFoundError。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!











