working_dir 必须显式指定,否则默认为sublime启动目录;常用变量仅支持$file_path、$project_path等内置变量;项目级配置中working_dir优先级高于全局,且须置于build_systems数组内各对象中。

working_dir 字段必须显式指定,否则默认是 Sublime 启动目录
Sublime 的 working_dir 不会自动继承当前文件所在路径——哪怕你用 $file_path 变量,也得写进配置里才生效。不设 working_dir 时,命令实际在 Sublime 主进程启动的位置执行(通常是用户主目录或安装目录),容易导致相对路径加载失败、找不到配置文件或依赖资源。
常用路径变量只有 $file_path、$project_path 等几个可用
别指望 $pwd 或 $(dirname $file) 这类 shell 写法,Sublime 只识别内置变量:
-
$file_path:当前文件所在目录(最常用) -
$project_path:项目根目录(仅当已打开 .sublime-project 且folders配置有效时才可用) -
$file或$file_base_name:不能单独作工作目录,只用于cmd - Windows 下用
/或\都行,但别混用;路径含空格无需额外转义
项目级构建系统中 working_dir 优先级高于全局构建
如果同时存在用户级 Python3_Run.sublime-build 和项目级 .sublime-project 中的 build_systems,且两者都设了 working_dir,则项目配置里的值生效。但要注意:
- 项目配置中
working_dir必须写在build_systems数组内每个对象里,不能提一层放到根对象 -
$project_path在单文件夹项目中通常等于$file_path,但多文件夹项目下可能指向第一个folders[0].path - 若
working_dir指向的路径不存在,命令会静默失败,控制台无报错,只显示“[Finished]”却无输出
调试 working_dir 是否生效的最快方法
临时把 cmd 改成查路径的命令,比看文档快:
{
"cmd": ["python", "-c", "import os; print('PWD:', os.getcwd()); print('FILE_PATH:', '$file_path')"],
"working_dir": "$file_path",
"selector": "source.python"
}
运行后对比两行输出,就能立刻确认路径是否如预期。真实项目中别留这种调试命令,但上线前值得跑一次。
真正容易被忽略的是:Sublime 不会校验 working_dir 路径是否存在,也不会提示它为空——它就默默在错误位置执行命令,然后给你一个空的输出面板。











