Sublime Text 必须手动配置 .sublime-build 文件,同时设置 path 字段指向虚拟环境的 Scripts(Windows)或 bin(macOS/Linux)目录,并在 cmd 中指定该环境中 python.exe 或 python 的绝对路径,否则会因 PATH 不包含虚拟环境可执行目录而报 ModuleNotFoundError;文件须保存为 .sublime-build 后缀、置于 Packages/User/ 目录,命名不含空格或中文,且 JSON 无语法错误。

Sublime Text 本身不自动识别或激活 Python 虚拟环境,必须手动配置构建系统(.sublime-build)指向虚拟环境中的 python 可执行文件,并显式设置 path 才能正确加载包和依赖。
怎么写一个能用的 Python_VENV.sublime-build
关键不是只改 cmd,而是让 Sublime 知道去哪里找 pip、setuptools 和你安装的第三方包(比如 snap7 或 django)。只写 cmd 会报 ModuleNotFoundError,因为 PATH 没包含虚拟环境的 Scripts(Windows)或 bin(macOS/Linux)目录。
- Windows 示例(路径含空格需加引号):
{ "path": "C:\myproject\venv\Scripts", "cmd": ["C:\myproject\venv\Scripts\python.exe", "-u", "$file"], "file_regex": "^[ ]*File "(*?)", line ([0-9]*)", "selector": "source.python" } - macOS/Linux 示例:
{ "path": "/Users/you/myproject/venv/bin", "cmd": ["/Users/you/myproject/venv/bin/python", "-u", "$file"], "file_regex": "^[ ]*File "(*?)", line ([0-9]*)", "selector": "source.python" } -
path字段必须存在且指向虚拟环境的可执行目录,否则import会失败;cmd中的python路径可以是相对或绝对,但推荐绝对路径避免歧义 - 保存时文件名必须以
.sublime-build结尾,且放在Packages/User/目录下(可通过Preferences → Browse Packages → User进入)
为什么 Tools → Build System 列表里看不到新创建的构建系统?
常见原因不是语法错误,而是保存位置或文件名不合规。
调用 Cutout.Pro 视觉处理 API 进行背景移除、人像抠图和照片增强,支持文件上传与图片 URL 输入。
- 没保存到
Packages/User/目录:Sublime 只扫描该目录下的.sublime-build文件 - 文件名含非法字符(如空格、中文、括号),例如
my venv build.sublime-build→ 改为my_venv.sublime-build - 保存时用了“另存为”并选错路径,导致实际没写入
User目录 - JSON 格式有隐藏的 BOM 或末尾逗号(Sublime 不容忍 trailing comma),可用在线 JSON 验证器检查
多个项目要切不同 venv,怎么避免手动切换构建系统?
靠 .sublime-project 文件绑定构建系统,实现“打开项目即生效”。
立即学习“Python免费学习笔记(深入)”;
- 在项目根目录新建
myproject.sublime-project,内容含:{ "build_systems": [ { "name": "Python (myproject-venv)", "file": "Packages/User/myproject_venv.sublime-build" } ], "settings": { "build_system": "Python (myproject-venv)" } } -
file值必须与你保存的.sublime-build文件名完全一致(不含路径,Sublime 默认在User下查找) - 如果想默认启用,加
"selected": true到对应构建系统对象内;但注意 Sublime 不支持跨项目自动继承,每个项目仍需独立配置 - 不建议依赖插件如
Virtualenv(已多年未维护),它无法可靠处理路径变更或嵌套 venv
真正容易被忽略的是 path 字段——它不是可选项,而是解决 ImportError 的关键。很多人卡在“能运行但 import 失败”,根源就是只配了 cmd 却漏掉 path,导致 Python 进程找不到自己环境里的模块搜索路径。

















