Sublime Text 运行 Python 依赖系统解释器,常见失败原因包括路径错误、缺 -u 参数、未适配虚拟环境及编码缓冲问题;须用绝对路径配置 Build System 和 Anaconda,并显式指定 -u 与 UTF-8 环境。

Sublime Text 本身不运行 Python,它只是调用你系统里已安装的解释器;配错路径、漏掉 -u、没处理虚拟环境,是 Ctrl+B 一按就失败或输出卡住的最常见原因。
Build System 路径写错导致 “python: command not found”
这不是 Sublime 的 bug,而是它根本没找到你的 Python 可执行文件。Windows 上 python 命令常不可用,macOS/Linux 上默认可能只有 python3。
- 先在终端确认真实路径:
which python3(macOS/Linux)或where python(Windows),例如输出/opt/homebrew/bin/python3或C:\Users\Alice\AppData\Local\Programs\Python\Python311\python.exe - Windows 用户若路径含空格(如
Program Files),必须用双引号包裹整个路径,或改用"shell_cmd": "py -3 -u \"$file\""配合"shell": true - 别写
python或python3命令名——它们依赖 PATH,而 Sublime 启动时不继承 shell 的 PATH - 保存文件名必须是
Python3.sublime-build,且放在Packages/User/目录下(可通过Preferences → Browse Packages进入)
虚拟环境里的包 import 报 ModuleNotFoundError
你终端里 pip install requests 成功了,但 Sublime 里 import requests 就报错——说明构建系统用的不是同一个 Python 解释器。
- 进你的虚拟环境:运行
source venv/bin/activate(Linux/macOS)或venv\Scripts\activate.bat(Windows),再执行which python或where python - 拿到类似
./venv/bin/python或.\venv\Scripts\python.exe的路径,填进 Build System 的"cmd"字段 - 不要指望“激活环境后启动 Sublime”能生效——Sublime 不读取当前 shell 的环境变量
- 多个项目用不同环境?建议每个项目单独建一个
Python - myproject.sublime-build文件
中文输出乱码或 input() 卡死
这不是文件编码设错了,而是 Python 解释器启动时没拿到 UTF-8 环境,标准输出被缓冲,输入通道被禁用。
立即学习“Python免费学习笔记(深入)”;
- 构建系统配置里必须加
-u参数:"cmd": ["<code>你的python路径", "-u", "$file"],否则print("你好")可能不显示,input()会挂住 - Windows 用户可额外加
"env": {"PYTHONIOENCODING": "utf-8"}(与cmd同级) - 避免用
"shell_cmd": "chcp 65001 && python -u \"$file\""——它会让file_regex失效,错误定位不准 - 代码开头加
# -*- coding: utf-8 -*-没用,关键是解释器启动时的 I/O 编码环境
Anaconda 插件补全失效、goto definition 点不动
Anaconda 默认自己找 Python,但一旦你用了 conda、venv 或非标准路径,它就“失联”——不报错,只是补全和跳转全失效。
- 打开
Preferences → Package Settings → Anaconda → Settings - User - 填入绝对路径,例如 Windows:
"python_interpreter": "C:/Users/xxx/miniconda3/envs/myenv/python.exe";macOS:"python_interpreter": "/opt/homebrew/bin/python3" - 路径里不能用
~或$HOME,Anaconda 不展开环境变量 - 确保这个路径和 Build System 里
"cmd"用的是同一个解释器,否则补全提示的函数签名和实际运行的版本对不上
最容易被忽略的一点:所有路径都必须是绝对路径,且不能含中文或空格;-u 不是可选项,是交互式脚本的刚需;虚拟环境路径必须显式指定,靠“激活后启动”完全无效。


















