sublime text 默认调用 python 命令时是 python 2,因其构建系统依赖系统环境变量中的 python 指向,而多数旧版 linux/macos 将 python 指向 python 2.7;需新建 python3.sublime-build 文件并显式指定 python3 路径来切换。

Sublime Text 默认调用 python 命令时为什么是 Python 2?
因为 Sublime Text 的 Python 构建系统(Build System)默认调用的是系统环境变量里的 python 命令,而很多 Linux/macOS 系统(尤其是老版本)把 python 指向了 Python 2.7。即使你装了 Python 3 并有 python3 命令,Sublime 不会自动识别或切换。
怎么让 Sublime Text 构建时调用 python3 而不是 python?
直接修改或新建一个 Build System 配置文件,显式指定 python3 可执行路径。操作步骤如下:
- 在 Sublime Text 中点击 Tools → Build System → New Build System…
- 清空模板内容,粘贴以下 JSON(注意路径适配):
{
"cmd": ["python3", "-u", "$file"],
"file_regex": "^[ ]*File "(...*?)", line ([0-9]*)",
"selector": "source.python",
"encoding": "utf-8"
}
- 保存为
Python3.sublime-build(后缀必须是.sublime-build,建议存到默认弹出的Packages/User/目录下) - 之后在 Tools → Build System 中选择刚建的
Python3
如果 python3 不在 $PATH 中(比如 macOS 用 pyenv 或 Windows 用非标准安装),需写绝对路径,例如:"/usr/local/bin/python3" 或 "C:\Users\xxx\AppData\Local\Programs\Python\Python311\python.exe"。
为什么改了 Build System 还是报错“command not found: python3”?
Sublime 在 macOS/Linux 下启动时不会加载 shell 的完整环境(比如 ~/.zshrc),所以即使你在终端里能直接敲 python3,Sublime 可能找不到它。常见解决方式:
- 用绝对路径代替
python3(最稳,推荐) - macOS 用户可在终端运行
subl启动 Sublime(这样它继承当前 shell 环境) - Windows 一般无此问题,但要注意反斜杠转义或用正斜杠
验证是否生效:新建一个 test.py,写 print(3/2),用 Ctrl+B 构建——输出 1.5 就是 Python 3,1 就还是 Python 2。
能不能让 Sublime 自动识别 .py 文件用 Python 3 构建,不用每次手动选?
可以,但只对当前项目或全局生效,不推荐设成“全自动”,因为容易误伤依赖 Python 2 的旧脚本。稳妥做法是:
- 对单个文件:右下角点击语法标识(如 “Python”),选 Set Syntax: Python,再手动选一次 Build System → Python3(Sublime 会记住该文件的构建系统)
- 对整个项目:在项目设置(
Project → Edit Project)中加"build_systems"字段,指定默认构建系统名 - 不要覆盖默认的
Python.sublime-build,避免影响其他用户或插件
真正的麻烦点不在配置本身,而在路径和环境隔离——尤其当你用 conda、pyenv、asdf 或多版本共存时,python3 指向哪个解释器,得靠 which python3 或 where python3 实锤,不能凭感觉填。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!











