sublime text不能自动识别venv或conda环境,必须手动指定虚拟环境中python解释器的绝对路径并添加-u参数。需通过source venv/bin/activate && which python(macos/linux)或conda activate myenv && where python(windows)获取真实路径,填入build system的"cmd"字段,路径错误或缺-u会导致modulenotfounderror或i/o卡死。

Sublime Text 不能自动识别 venv 或 conda 环境
它不会读取 pyproject.toml、.python-version,也不会响应 conda activate 或 source venv/bin/activate。你看到的 ModuleNotFoundError 几乎全是这个原因——Sublime 默认调用的是系统 PATH 里的第一个 python,和你在终端里激活的环境完全无关。
必须手动把虚拟环境里真实的 python 可执行文件路径填进构建系统。路径错一字符,就等于换了解释器;漏掉 -u,print() 和 input() 就会卡死或乱码。
怎么拿到正确的 Python 解释器绝对路径
别猜、别抄网上“常见路径”,直接查:
- venv 用户:
source venv/bin/activate && which python(macOS/Linux)或venvScriptsctivate.bat && where python(Windows) - conda 用户:
conda activate myenv && which python(macOS/Linux)或conda activate myenv && where python(Windows) - Windows 路径含空格(如
C:Program Files...)时,用正斜杠C:/Program Files/...或双反斜杠C:\Program Files\...;单反斜杠C:Program Files...会被 JSON 解析失败 - 不要用
conda which python—— 它返回的是 conda 自己的包装脚本路径,不是真实解释器,运行会报ImportError: No module named site
构建系统必须用绝对路径 + -u 参数
新建 Build System(Tools → Build System → New Build System…),粘贴以下结构,只改第一项:
{
"cmd": ["/full/path/to/your/venv/bin/python", "-u", "$file"],
"file_regex": "^[ ]*File "(*?)", line ([0-9]*)",
"selector": "source.python",
"encoding": "utf-8"
}
"cmd" 数组第一项必须是上面查到的**绝对路径**,不能写 python、conda run、bash -c "source venv/bin/activate && python" —— Sublime 不走 shell,这些全无效。
-u 不可省:它强制无缓冲输出,否则 print("hello") 不刷新、input() 直接抛 IOError: [Errno 0] Error。Windows 下 python.exe -u 同样生效;--unbuffered 是长选项,Sublime 不识别。
图片提示词生成器?不止如此。 马甲系统 —— 把脑海中的画面,翻译成AI能理解的专业表达。 用得越多,它越懂你:首次需要多问几句确认方向,用久了几乎一说就懂。 用得越多,它越快:缓存机制让后续对话越来越省。 RAG进化:成功案例持续入库,越跑越聪明。 输入「新手指南」查看完整功能介绍
Windows 用户若仍乱码,加 "env": {"PYTHONIOENCODING": "utf-8"} 到同级位置。
多个项目用不同虚拟环境,靠 .sublime-project 绑定
全局 Build System 容易选错,尤其团队协作时。正确做法是每个项目配一个 .sublime-project 文件:
{
"folders": [{"path": "."}],
"build_systems": [{
"name": "Run in venv",
"cmd": ["/Users/you/project-a/venv/bin/python", "-u", "$file"],
"file_regex": "^[ ]*File "(*?)", line ([0-9]*)",
"selector": "source.python"
}]
}
保存为 project-a.sublime-project,再通过 Project → Save Project As… 关联。这样每次打开该项目,Tools → Build System 里就会自动出现专属选项,且默认选中(加 "selected": true 即可)。
路径必须是绝对路径或相对于项目根目录的相对路径(如 ./venv/bin/python);~、$HOME、环境变量一律不展开。
最容易被忽略的一点:.sublime-project 里的 build_systems 是数组,但 Sublime 只认第一个匹配 selector 的项;如果你写了多个,且都标了 "selector": "source.python",只有第一个生效。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!










