Ctrl+B 运行 Python 需手动配置解释器绝对路径并加 -u 参数;Sublime 不读系统 PATH,需用 which python3 或 where python 获取真实路径,且构建系统与插件(如 Anaconda)路径必须严格一致。

Ctrl+B 能直接运行 Python 代码,前提是构建系统配对了正确的解释器路径、-u 参数和 source.python 选择器——不是装了插件就行,也不是“选个 Python 构建系统”就完事。
为什么 Ctrl+B 报 Unable to find python command
Sublime 不读你的 PATH 环境变量,尤其在 Windows(Microsoft Store 版 Python)、macOS(pyenv 管理的版本)或 Linux(仅装了 python3 没软链 python)上,写 "cmd": ["python", "-u", "$file"] 几乎必错。
- 先在终端确认真实路径:
which python3(macOS/Linux)或where python(Windows),复制输出的完整路径 - Windows 用户别信
python,直接填"cmd": ["C:/Python311/python.exe", "-u", "$file"](正斜杠更稳) - macOS/Linux 用户别用
~,写全路径如/opt/homebrew/bin/python3或/Users/you/.pyenv/versions/3.11.5/bin/python - 如果只认
python3命令,就写"cmd": ["python3", "-u", "$file"],别硬改名
怎么让 input() 正常工作
默认构建系统跑在 Sublime 内置非交互 shell 里,input() 会直接抛 EOFError 或卡住——这不是代码问题,是执行环境不支持标准输入。
- 必须用
variants启动真正的终端:macOS 示例中"Run in Terminal"变体调用Terminal.app+osascript执行;Windows 可加"shell_cmd": "start cmd /k python -u \"$file\"" - 不要依赖
"target": "repl_python",那是SublimeREPL插件专用,原生构建系统不识别 - 如果只是临时调试,按
Ctrl+Shift+B(Windows/Linux)或Cmd+Shift+B(macOS)打开 Build Results 面板,错误堆栈会留在那里不消失,比一闪而过的窗口有用得多
虚拟环境里的包为啥 import 报错
ModuleNotFoundError 的根因永远是:你 pip install 的 Python 解释器,和 Sublime 构建系统调用的不是同一个。
立即学习“Python免费学习笔记(深入)”;
- 进你的 venv 或 conda env,运行
which python(macOS/Linux)或where python(Windows),拿到该环境下解释器的绝对路径 - 把这个路径填进
.sublime-build文件的"cmd"字段,而不是系统全局路径 - Anaconda 插件也要同步配置:打开
Preferences → Package Settings → Anaconda → Settings - User,填同样的"python_interpreter"路径 - 别指望构建系统自动激活 venv——它不继承 shell 环境,也不执行
activate脚本
中文输出乱码或 print() 不实时显示
没加 -u 参数是最常见原因;其次,Sublime 构建系统不带终端 locale,中文编码容易断层。
- 务必在
"cmd"或"shell_cmd"中包含-u,例如["python3", "-u", "$file"],否则输出被缓冲,可能卡住或延迟刷出 - macOS/Linux 可加
"env": {"PYTHONIOENCODING": "utf-8"}到构建系统配置同级;Windows 推荐在代码开头加# -*- coding: utf-8 -*-,并确保文件保存为 UTF-8 无 BOM - 避免在
"shell_cmd"里拼chcp 65001(Windows),它会让file_regex失效,导致错误行号定位不准
真正容易被忽略的是:Sublime 的构建系统和插件(比如 Anaconda)各自维护一套 Python 解释器路径。改了一个,另一个很可能还连着旧环境——两个地方必须填同一份绝对路径,少一个字符都可能让补全失效、import 报错、甚至 Ctrl+B 看不到任何输出。


















