sublime text运行python需手动配置构建系统并确保路径、参数、环境三者严格对齐;须用which/where查绝对路径填入"cmd",加"-u"禁用缓冲,anaconda插件需同步配置相同python_interpreter路径。

Sublime Text 本身不运行 Python,它只调用你系统里已装好的 python3 或 python 命令。配错路径、漏掉 -u、插件和构建系统用的不是同一个解释器——这三件事占了 90% 的“为什么 Ctrl+B 没反应”“补全弹不出来”“import 报错”问题。
怎么让 Ctrl+B 正确执行 Python 脚本
默认 Build System 是空的或指向 Python 2,必须新建一个。关键不是“选 Python”,而是“告诉 Sublime 具体去哪找 python3”。
- 先在终端确认真实路径:
which python3(macOS/Linux)或where python(Windows),别信python --version成功就等于路径可用 - 打开
Tools → Build System → New Build System…,粘贴以下内容(按你查到的路径改):
{
"cmd": ["<code>/usr/local/bin/python3</code>", "-u", "$file"],
"file_regex": "^[ ]*File "(.*)", line ([0-9]*)",
"selector": "source.python",
"encoding": "utf-8"
}
-
-u必须加,否则print()输出可能卡住或延迟;Windows 用户若路径含空格,用正斜杠C:/Python311/python.exe更稳,别用双反斜杠 - 保存为
Python3.sublime-build,之后在Tools → Build System中手动选它——Sublime 不会自动切换
为什么 Anaconda 插件没补全、跳转失效
Anaconda 默认不启用 linting 和补全,也不猜你用哪个解释器。它和 Sublime 自带的单词补全还会打架。
- 打开
Preferences → Package Settings → Anaconda → Settings – User,填入和上面构建系统**完全一致**的解释器路径,比如:"python_interpreter": "/usr/local/bin/python3.12" - 必须关掉 Sublime 原生补全干扰:
"suppress_word_completions": true和"suppress_explicit_completions": true - 如果项目用了 venv 或 conda 环境,别填系统全局路径;进环境后运行
which python,把那个路径填进去 - 补全仍不准?在项目根目录加一个
.jedi文件,内容就一行:sys_path = ["."],强制它扫描当前目录
如何支持 input() 交互式输入
默认构建系统跑在 Sublime 内置非终端环境中,input() 直接被禁用,会卡死或报错 EOFError。
- 不能只靠
"cmd",得用"shell_cmd"启动真正的终端:
{
"shell_cmd": "python3 -u "$file"",
"file_regex": "^[ ]*File "(.*)", line ([0-9]*)",
"selector": "source.python",
"variants": [
{
"name": "Run in Terminal",
"shell_cmd": "open -a Terminal.app "$(dirname \"$file\")"; osascript -e 'tell application "Terminal" to do script "cd \"$(dirname \"$file\")\" && python3 -u \"$file\""'"
}
]
}
- macOS 上这个
variants会新开 Terminal 并执行脚本;Linux 可换成gnome-terminal -- bash -c "cd ...";Windows 用cmd /c start cmd /k python -u "$file" - 注意:交互模式下不要用
Ctrl+B,要选Tools → Build System → Run in Terminal
常见报错直接对应原因
报错信息不是摆设,基本能定位到具体配置环节:
-
Unable to find python command→ 构建系统里的cmd路径写错了,或没加-u导致缓冲假死 -
ModuleNotFoundError→ Anaconda 设置的python_interpreter和构建系统用的不是同一个环境(比如一个指系统 Python,一个该指 venv 里的) - 右下角显示
Plain Text而不是Python→ 文件没保存为.py后缀,或手动设错了语法(View → Syntax → Python) - 底部状态栏显示
[Finished]但无输出 → 构建成功但 stdout 被缓冲,确认-u是否遗漏
最常被忽略的是:构建系统、插件配置、终端里 pip install 的环境,这三者必须严格对齐。差一个路径、一个版本号,补全就失效,包就找不到——不是插件坏了,是它们根本没在“说同一种语言”。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!











