Sublime Text 需通过 EnvFile 插件配合构建系统实现 .env 文件自动加载,仅在项目模式下识别 .env 或 .env.development 等文件,并于 Build 时注入环境变量;须禁用 "env" 字段、使用 cmd 数组且 "shell": false,否则失效。

Sublime Text 本身不自动加载 .env 文件或继承 shell 的环境变量,所谓“自动化构建环境变量”,必须靠插件 + 构建系统显式配合才能实现——没有一键开关,只有明确控制。
用 EnvFile 插件自动加载 .env 文件
EnvFile 是目前最稳定、无需额外脚本就能在构建时注入环境变量的方案。它不是“全局生效”,而是按项目根目录动态识别并加载 .env、.env.development 等文件。
- 安装方式:按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS),输入Install Package→ 搜索EnvFile→ 回车安装 - 生效前提:当前 Sublime 窗口已打开一个文件夹(即处于“项目模式”),且该文件夹下存在
.env或匹配环境名的文件(如ENV=production时会尝试加载.env.production) - 注意:EnvFile 不修改系统 PATH,也不影响其他插件;它只在 Build System 执行时把变量注入子进程环境
构建系统里怎么正确传入环境变量
即使装了 EnvFile,你也得在构建配置中启用它——默认情况下 Sublime 的 cmd 是干净环境。关键点是:不能靠 env 字段硬写死,而要让 EnvFile “接管”。
- 确保构建系统配置中没写
"env": {...},否则会覆盖 EnvFile 注入的变量 - 必须使用
cmd数组形式(如["python", "-u", "$file"]),且保持"shell": false(默认值)——这是 EnvFile 能生效的前提 - 不要用
shell_cmd:它绕过 EnvFile 的环境注入机制,变量不会被带进去 - 验证是否生效:在 Python 脚本里加一行
import os; print(os.environ.get("MY_VAR")),看输出是否是你.env里写的值
为什么 set PYTHONPATH 或 PATH 总是失败
常见误区是想在构建系统里手动补全 PYTHONPATH 或扩展 PATH。但 Sublime 启动时根本不读你的 ~/.zshrc 或 PATH 系统变量,直接设 "env": {"PATH": "/opt/homebrew/bin:$PATH"} 也无效——因为这里的 $PATH 是空字符串,不是 shell 展开后的结果。
- 可靠做法:用绝对路径写死命令,比如把
python换成/Users/xxx/.pyenv/versions/3.11.9/bin/python - 如果必须动态拼接 PATH,得靠外部 wrapper 脚本(如 shell 脚本先 source 环境再 exec),但这就脱离“自动化”初衷了
- Windows 用户尤其注意:
set PYTHONPATH=...这种命令行语法在cmd数组里完全不生效,它不是 shell,只是参数列表
真正容易被忽略的是:EnvFile 只对“当前项目窗口”有效,新开一个无文件夹的空白窗口,或用 subl some_file.py 单文件打开,.env 就不会加载。自动化不是无条件的,它依赖项目上下文。

















