Sublime Text 4 Python配置需分四步:先用官方代码安装Package Control;再手动配置Python构建系统路径;然后降级flake8至6.1.0解决SublimeLinter报错;最后在用户设置中添加UTF-8编码、固定缩进和补全优化。

Sublime Text 4 装完就用不了 Python?先确认 Package Control 是否真装上了
很多人点开 Sublime Text 4 后按 Ctrl+Shift+P 搜不到 Package Control,不是没装,是安装失败了——官网的 Python 3 安装代码已更新,旧教程里粘贴的链接(比如带 https://www.php.cn/link/... 的)早已失效或被拦截。
- 正确做法:打开
Ctrl+`控制台,粘贴官方最新安装代码(2026 年有效):import urllib.request,os,sys; exec(urllib.request.urlopen('https://packagecontrol.io/installation.py').read().decode('utf-8')) - 执行后等几秒,不报错、不闪退,重启编辑器,再按
Ctrl+Shift+P能搜到Package Control: Install Package就算成功 - 常见坑:
urllib.error.URLError多因系统代理或杀毒软件拦截;若控制台显示ModuleNotFoundError: No module named 'urllib',说明你用的是极老版本 ST4(建议重下官网正版)
Python 构建系统总跑错解释器?路径和 shell 必须手动对齐
按 Ctrl+B 运行 .py 文件却提示 python: command not found 或调用了系统自带的 Python 2.7,根本原因不是插件问题,而是构建系统没绑定你真正想用的 Python 可执行文件。
- 新建构建系统:
Tools → Build System → New Build System…,清空内容,粘贴:
{
"cmd": ["C:/Users/xxx/AppData/Local/Programs/Python/Python312/python.exe", "-u", "$file"],
"file_regex": "^[ ]*File \"(*?)\", line ([0-9]*)",
"selector": "source.python",
"encoding": "utf-8",
"shell": true
}
-
"cmd"中的路径必须是你本地python.exe的**绝对路径**(用where python或which python查);conda/venv 环境请直接填env/Scripts/python.exe,别依赖shell: true去找环境变量 -
"shell": true在 Windows 上必须保留,否则路径含空格会崩;macOS/Linux 可设为false提升安全性 - 保存为
Python.sublime-build,然后在Tools → Build System里手动选中它——别信“Automatic”
写 Python 总被标红但代码没错?SublimeLinter 和 flake8 版本不匹配
装了 SublimeLinter 和 SublimeLinter-flake8,也 pip install flake8 了,可依然满屏波浪线、警告不消失,甚至报 linter crashed,大概率是 flake8 版本太新(比如 7.x),而插件还没适配。
- 临时解法:降级
flake8到稳定版:pip install flake8==6.1.0 - 验证是否生效:终端运行
flake8 --version,输出应为6.1.0 - 进阶配置:在
Preferences → Package Settings → SublimeLinter → Settings中加一行:"linters": {"flake8": {"args": ["--max-line-length=88"]}},避免误报 PEP8 行长警告 - 注意:
SublimeLinter默认只检查保存时("lint_mode": ["on_save"]),如果想边写边看,要手动改成["on_save", "on_modified"]
中文乱码、缩进错乱、自动补全失灵?用户设置里这三行不能少
ST4 默认配置对中文支持弱、Tab 行为反直觉、补全卡顿,不是 BUG,是默认关掉了关键开关。改 Preferences → Settings – User 就行,不用动 base 文件。
- 强制 UTF-8 编码:
"default_encoding": "UTF-8" - 让 Tab 真正等于 4 个空格:
"tab_size": 4+"translate_tabs_to_spaces": true+"detect_indentation": false(最后一项禁用自动探测,否则打开别人代码会突然变 2 空格) - 补全更顺手:
"auto_complete_commit_on_tab": true(Tab 键直接确认补全,不用回车) - 额外提醒:如果装了
Anaconda插件,它的补全会覆盖原生行为,此时上面那行仍有效,但补全源来自插件自身配置
所有配置都得重启 Sublime 才生效,别信“热重载”。最常被忽略的是 "detect_indentation": false——它不加,你永远不知道当前文件的缩进到底是编辑器猜的,还是你设的。










