必须用绝对路径指向venv/bin/python,因Sublime不展开~/或相对路径;Mac/Linux写全路径如/Users/you/venv/bin/python,Windows用双反斜杠或正斜杠;验证需print(sys.executable)确认是否真调用虚拟环境。

Build System 的 cmd 必须用绝对路径指向 venv/bin/python
相对路径或 ~/ 在 Sublime 的 Build System 中不会被展开,会导致 python: command not found 错误。Mac/Linux 下必须写成类似 /Users/you/projects/myapp/venv/bin/python 的完整路径;Windows 则是 C:\Users\you\projects\myapp\venv\Scripts\python.exe,注意反斜杠要双写或用正斜杠(C:/Users/you/...)。
常见错误现象:
- 构建时提示
sh: python: command not found(Mac/Linux)或'python' 不是内部或外部命令(Windows) - 看似运行成功,但
print(sys.executable)显示的是系统 Python 路径,而非 venv 路径
实操建议:
- 在终端中进入项目目录,执行
which python(Mac/Linux)或where python(Windows),复制输出的完整路径 - 不要手敲路径,避免空格、中文、符号导致解析失败
- 如果项目路径含空格,路径本身无需引号,Sublime 会自动处理;但若手动加了引号反而可能出错
.sublime-project 文件里直接嵌入 build_systems 更可靠
比起单独保存 xxx.sublime-build 文件再手动切换,把构建配置直接写进项目文件,能确保每次打开项目就自动绑定正确环境,避免选错构建系统导致静默使用系统 Python。
立即学习“Python免费学习笔记(深入)”;
关键点:
-
"build_systems"是数组,可定义多个,但 Sublime 默认只用第一个;如需默认启用某一个,加"selected": true -
"cmd"字段内容与 Build System 文件中一致,仍需绝对路径 - 不建议在
"settings"下写全局 Python 解释器路径——那对 Build System 无效,只影响插件(如 Anaconda)
示例片段(放在 myproject.sublime-project 中):
{
"folders": [{ "path": "." }],
"build_systems": [{
"name": "Python (myapp-venv)",
"cmd": ["/Users/you/projects/myapp/venv/bin/python", "-u", "$file"],
"file_regex": "^[ ]*File \"(.+?)\", line ([0-9]+)",
"selector": "source.python",
"working_dir": "$file_path"
}]
}
多个项目共存时,别复用同一个 .sublime-build 文件
很多人图省事,建一个通用的 venv-python.sublime-build,然后到处复制修改路径。这极易出错:一旦路径写错、没保存、或多人协作时路径不一致,就会跑偏到错误环境。
更稳妥的做法是每个项目独享配置:
- 每个项目根目录下有且仅有一个
.sublime-project文件,内嵌其专属build_systems - 项目迁移或共享时,只需带这个文件 +
venv/目录(或忽略venv/,靠requirements.txt重建) - 如果真要用独立
.sublime-build文件,务必重命名(如myapp_venv.sublime-build),并明确存放在项目根目录或Packages/User/下
顺带提醒:venv 目录名不是强制的,但统一用 venv 可降低团队协作成本;若用 .venv 或 env,路径就得同步改,容易漏。
验证是否真的用了虚拟环境,不能只看输出结果
运行成功 ≠ 用了对的环境。最常被忽略的验证方式是检查解释器和包路径。
在 Python 文件开头加两行:
import sys print(sys.executable, sys.path[:3])
输出应类似:
/Users/you/projects/myapp/venv/bin/python ['/Users/you/projects/myapp', '/Users/you/projects/myapp/venv/lib/python3.11/site-packages', ...]
而不是:
/usr/local/bin/python3 ['/Users/you/projects/myapp', '/usr/local/lib/python3.11/site-packages', ...]
如果 sys.executable 指向系统路径,说明构建配置根本没生效——优先检查 .sublime-project 是否被正确加载(Project → Properties 应显示项目名),再查路径拼写和权限(venv/bin/python 是否有执行权限?chmod +x 可修复)。


















