sublime text 运行 python 脚本需手动配置构建系统:通过 tools → build system → new build system 创建 python3.sublime-build 文件,内容为 { "cmd": ["python3", "-u", "$file"], "file_regex": "^[ ]file "(?)", line ([0-9]*)", "selector": "source.python" },保存后选择该系统并按 ctrl+b 即可执行。

Sublime Text 本身不带 Python 运行能力,必须手动配构建系统 + 插件链才能跑代码、补全、查错。核心就三件事:让 Ctrl+B 能执行脚本、让 Ctrl+Space 能弹出变量名、让报错能准确定位到行号——其他都是锦上添花。
怎么配构建系统让 Ctrl+B 正常运行 Python 脚本
默认 Sublime 不知道该用哪个 python 命令去执行你的 .py 文件。不配这个,按 Ctrl+B 只会报 command not found: python 或直接没反应。
- 打开
Tools → Build System → New Build System…,粘贴以下内容(注意路径适配):
{
"cmd": ["python3", "-u", "$file"],
"file_regex": "^[ ]*File "(.*)", line ([0-9]*)",
"selector": "source.python",
"encoding": "utf-8"
}
保存为 Python3.sublime-build。Linux/macOS 一般用 python3,Windows 若已将 Python 加入 PATH 且命令是 python,就改成 ["python", "-u", "$file"]。
-
-u参数必须加,否则 print 输出可能被缓冲,调试时看不到实时日志 - 如果用虚拟环境,别硬编码路径;等 Anaconda 配好后,它会自动识别当前项目下的
venv或.venv - 构建失败时看底部状态栏左下角,如果显示
[Finished]但无输出,大概率是cmd里的命令名错了,或 Python 没进 PATH
为什么装了 Anaconda 插件却没补全、没悬停文档
因为 Anaconda 默认不启用 linting 和补全,且不会自动猜你用哪个 Python 解释器。它不像 VS Code 那样“装完就动”,得手动指定路径并开开关。
- 打开
Preferences → Package Settings → Anaconda → Settings – User - 填入明确的解释器路径,比如:
{
"python_interpreter": "/usr/local/bin/python3.12",
"anaconda_linting": true,
"anaconda_complete_in_strings": false,
"suppress_word_completions": true,
"suppress_explicit_completions": true
}
其中 suppress_* 是关键:不关掉它们,Sublime 自带的单词补全会和 Anaconda 的语义补全打架,导致 os. 后按 Ctrl+Space 弹出一堆无关变量名。
- 路径必须真实存在,用终端执行
which python3或py -3 -c "import sys; print(sys.executable)"(Windows)确认 - 改完设置后,重启 Sublime 或右键文件 →
Rebuild Index,否则补全引擎不会加载新解释器的 stdlib - 悬停不显示文档?检查是否在函数名上悬停——不是在括号里或字符串里;且确保光标停顿超过 300ms
SublimeLinter + flake8 报错但不标红行号怎么办
常见现象是控制台里刷出一堆 E501 line too long,但代码里根本没高亮。这是因为 SublimeLinter 默认只在保存时检查,且错误级别未映射到 UI 标记。
- 先确保已通过 Package Control 安装
SublimeLinter和SublimeLinter-flake8 - 打开
Preferences → Package Settings → SublimeLinter → Settings – User,加入:
{
"lint_mode": "load_save",
"show_errors_on_save": true,
"gutter_theme": "Packages/SublimeLinter/gutter-themes/Default/Default.gutter-theme",
"styles": [
{
"mark_style": "squiggly_underline",
"priority": 1,
"scope": "region.yellowish markup.warning.sublimelinter",
"icon": "dot",
"types": ["warning"]
},
{
"mark_style": "squiggly_underline",
"priority": 1,
"scope": "region.redish markup.error.sublimelinter",
"icon": "dot",
"types": ["error"]
}
]
}
squiggly_underline 是关键,它让错误变成波浪线而非方块,更易识别;lint_mode 设成 load_save 才能在打开文件时立刻标记。
- 如果仍不标红,检查
flake8是否已全局安装:pip install flake8;Anaconda 自带的 linter 不会调用它 - Windows 用户若用 PowerShell,可能因执行策略阻止
flake8运行,临时允许:Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
用 SublimeREPL 调试时 import 报错 ModuleNotFoundError
SublimeREPL 启动的是独立进程,默认用系统 Python,不继承当前项目的 venv 或 PYTHONPATH。你在终端激活了虚拟环境,REPL 里还是找不到包。
- 不要直接按
Ctrl+Shift+P → SublimeREPL: Python,而是先打开命令面板,输入SublimeREPL: Python - PYTHONPATH - 或者手动配置 REPL 启动项:打开
Tools → SublimeREPL → Python → Python - Custom,在弹出的配置中修改"cmd":
"cmd": ["/path/to/venv/bin/python", "-i", "-u"]
Linux/macOS 替换为你的虚拟环境路径,Windows 是 "C:\path\to\venv\Scripts\python.exe"。
- 更省事的办法:用 Anaconda 的
Ctrl+Shift+P → Anaconda: Start REPL,它会自动读取当前项目根目录下的venv或pyproject.toml中定义的 interpreter - REPL 窗口里输
exit()退出后,下次再开仍是干净环境;别指望它记住import numpy后下次还能用
最常被跳过的其实是「验证解释器路径是否真实可执行」这一步——很多人复制粘贴 /usr/bin/python3 却没检查它是否存在,或以为 Windows 的 python 命令一定指向 3.10+,结果补全引擎加载失败,整个 Anaconda 功能静默失效。动手前先在终端敲一遍 which python3 或 where python,比反复重启 Sublime 有用得多。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!











