sublime text构建系统必须手动配置python绝对路径,因其不读取系统path或pythonpath;需用which/where命令获取真实路径,正确写入build system的cmd数组,并确保lsp-pyright、anaconda等插件配置一致。

必须手动填绝对路径,Sublime Text 不读系统 PATH 或 PYTHONPATH。 它只认你写死在 Build System 里的那个可执行文件位置。漏掉这步,Ctrl+B 要么报 python: command not found,要么卡住不动,或者用错解释器版本——尤其是你装了多个 Python 或用了 virtualenv 的时候。
怎么找到你真正要配的 python 可执行文件路径
别信 python 或 python3 命令在终端里能跑就万事大吉。Sublime 不走 shell 查找逻辑,它需要真实磁盘路径。
- macOS/Linux:在终端运行
which python3(推荐)或type -a python3,选带完整路径的那个,比如/Users/you/.pyenv/versions/3.11.9/bin/python3或/opt/homebrew/bin/python3 - Windows:用
where python(不是where python3),结果类似C:UsersAliceAppDataLocalProgramsPythonPython311python.exe - 虚拟环境内:进你的
venv目录,路径通常是venv/bin/python(macOS/Linux)或venvScriptspython.exe(Windows) - 路径含空格或中文?直接放弃——重装到纯英文无空格路径,比如
C:py311python.exe,否则构建系统大概率解析失败
新建 Build System 并填对 cmd 和参数
Sublime 的构建系统本质是 JSON 配置,关键字段只有 cmd,其他都是辅助项。错一个引号或斜杠,Ctrl+B 就不工作。
-
cmd必须是数组形式:["/path/to/python", "-u", "$file"]——-u强制未缓冲输出,否则 print 日志会延迟或丢失 - macOS/Linux 路径带空格?整个路径加双引号:
["/Applications/PyCharm.app/Contents/plugins/python/helpers/pydev/pydevd.py", "--port", "5678", "--file", "$file"]这种也适用,但普通 Python 解释器路径一般不用这么复杂 - Windows 路径反斜杠要双写或改斜杠:
["C:\Python311\python.exe", "-u", "$file"]或["C:/Python311/python.exe", "-u", "$file"] - 不需要写
path字段——它已被弃用,且和cmd里的路径冲突;也不用设PYTHONPATH环境变量,Sublime 不继承这些
LSP-pyright 或 Anaconda 插件也要配解释器路径
它们不共享 Build System 的配置,各自独立读取。配错会导致类型提示失效、跳转错误、甚至插件报 Cannot find module 'pyright'。
- Pyright:先
npm install -g pyright,再用which pyright拿路径,填进 LSP-pyright 的command数组;同时在settings里设pythonPath指向你的虚拟环境python可执行文件 - Anaconda:打开
Preferences → Package Settings → Anaconda → Settings - User,填"python_interpreter": "/path/to/your/venv/bin/python"——这个路径必须和 Build System 里的一致,否则补全和 lint 结果对不上 - 禁用冲突插件:Anaconda 和 LSP-pyright 同时启用会抢 control-click 跳转,建议只留一个
最容易被忽略的是:项目级配置和全局配置混用时,.sublime-project 文件里如果写了 build_systems,它会覆盖菜单里选中的 Build System;而插件的 python_interpreter 设置又只读用户配置文件,不读项目文件。三者路径不一致,调试时就会出现「代码能跑,但提示全是错的」这种静默故障。











