Sublime Text 运行 Python 需正确配置解释器绝对路径、-u 参数及编码;虚拟环境需显式指定 python 路径;补全跳转依赖 .jedi 文件配置 sys_path;统一 UTF-8 编码与解释器路径是关键。

Sublime Text 本身不运行 Python,它只是调用你系统里已安装的解释器;配错路径、环境不一致、没加 -u 参数,是 Ctrl+B 一按就失败或输出卡住的最常见原因。
Build System 配置必须写绝对路径 + -u
Sublime 的默认 Python 构建系统是给 Python 2 用的,且不支持 input()。直接改用 python 或 python3 命令会失败——因为 Windows 不一定识别命令名,macOS/Linux 可能指向旧版本。
- 先在终端确认真实路径:
which python3(macOS/Linux)或where python(Windows),例如输出/usr/local/bin/python3或C:\Users\Alice\AppData\Local\Programs\Python\Python311\python.exe - 打开
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("hello")可能不显示,input()会卡死 - Windows 用户若路径含空格(如
Program Files),必须用双引号包裹整个路径,或改用shell_cmd方式启动终端
虚拟环境下的 Python 路径不能靠“激活后运行 Sublime”
你在终端里 source venv/bin/activate 后执行 python 是对的,但 Sublime 启动时不会继承这个 shell 环境。它读的是系统 PATH 或你硬写的路径,跟终端当前激活的环境无关。
- 进你的虚拟环境,运行
which python(Linux/macOS)或where python(Windows),拿到类似./venv/bin/python或.\venv\Scripts\python.exe的路径 - 把这个路径填进 Build System 的
"cmd"字段,而不是系统全局 Python 路径 - 项目换一个虚拟环境?就新建一个
Python - myproject.sublime-build文件,别复用 - 别指望
pip install装的包自动生效——解释器路径不对,import requests就报ModuleNotFoundError
代码跳转和补全失效,大概率缺 .jedi 或路径不匹配
Sublime 原生不带语言服务器,靠 SublimeJEDI 或 Anaconda 插件提供跳转和补全。但它们默认只扫描当前文件夹,跨目录 import 或用虚拟环境里的包时,经常“看不见”。
让 macOS 自动化像说话一样简单 —— 用代码控制你的 Mac,无需学习 AppleScript 系统要求 macOS 14+ (Sonoma) Python 3.9+ 需要开启:辅助功能 + 屏幕录制权限
立即学习“Python免费学习笔记(深入)”;
- 装好
SublimeJEDI后,在项目根目录手动建一个.jedi文件(无后缀),内容示例:
{
"sys_path": [
"./src",
"./lib",
"<code>/path/to/venv/lib/python3.11/site-packages</code>"
]
}-
sys_path里填的是 Python 实际加载模块的路径,不是 pip list 里看到的名字 - 确保
.jedi文件里的python_interpreter(如有)和 Build System 用的是同一个解释器路径,否则跳转会跳到标准库源码里去 - 中文路径会导致
SublimeJEDI初始化失败,整个补全功能静默失效——检查项目路径是否含中文
保存后自动格式化和编码问题要单独设
Sublime 默认不处理 PEP 8 格式化,也不强制 UTF-8。中文注释乱码、缩进混用 TAB/SPACE、保存后没自动整理,都是默认配置没动过的典型表现。
- 在
Preferences → Settings – User中加这两项:
"translate_tabs_to_spaces": true, "ensure_newline_at_eof_on_save": true
- 想保存时自动格式化,得装
AutoPEP8或Black插件,并配置其调用路径——它依赖你 Build System 里指定的 Python 解释器,所以路径必须一致 - 如果文件含中文但运行时报
UnicodeDecodeError,不是代码问题,是 Sublime 没读对编码:右下角点击编码名(如 `UTF-8`),选 `Reopen with Encoding → UTF-8`,再保存 - 别在 Build System 里写
"encoding": "gbk"——这只会让错误更隐蔽,统一用 UTF-8 + BOM 兼容性更稳
最容易被忽略的是:Build System 路径、插件配置里的解释器路径、终端里 pip install 的目标路径,这三者必须指向同一个 Python 可执行文件。差一个字符,import 就可能失败,跳转就跳错地方,连 print 输出都延迟——不是 Sublime 有问题,是你没让它知道“该用谁”。
















