Sublime Text 没有可靠 Poetry 插件,必须手动配置构建系统指向 Poetry 虚拟环境的 Python 解释器路径;依赖管理须在终端用 poetry install 等命令完成,编辑器仅负责调用已配置好的解释器。

Sublime Text 没有真正可用的 Poetry 插件,强行安装或依赖插件实现“一键部署”只会带来路径混乱、解释器错用和 ModuleNotFoundError。
Poetry 插件在 Sublime Text 中根本不可靠
目前没有任何维护活跃、兼容 Sublime Text 4 的 Poetry 插件。历史上的 Virtualenv、SublimePythonIDE 等插件早已停止更新,在 ST4 下多数功能失效。它们试图自动探测 poetry 环境或注入 sys.path,但实际运行时:
- 构建系统仍调用系统 Python,而非
poetry run python - 无法正确识别
poetry shell激活后的环境变量 - 切换项目后解释器路径不会自动更新,容易复用旧虚拟环境
真正生效的方式:手动配置 .sublime-build 指向 poetry 虚拟环境解释器
Poetry 创建的虚拟环境路径是确定的,只需查出它的 python 可执行文件位置,硬编码进构建系统即可。执行以下命令获取路径:
poetry run python -c "import sys; print(sys.executable)"
输出类似:
立即学习“Python免费学习笔记(深入)”;
- macOS/Linux:
/Users/xxx/Library/Caches/pypoetry/virtualenvs/demo-project-abc123-py3.11/bin/python - Windows:
C:UsersxxxAppDataLocalpypoetryCacheirtualenvsdemo-project-abc123-py3.11Scriptspython.exe
新建构建系统(Tools → Build System → New Build System…),填入:
{
"shell_cmd": "/path/to/your/poetry/venv/bin/python -u "$file"",
"file_regex": "^[ ]*File "(*?)", line ([0-9]*)",
"selector": "source.python"
}
注意:
- Windows 用户必须用双反斜杠
\或正斜杠/,例如C:/project/.venv/Scripts/python.exe -
shell_cmd是关键,cmd字段不支持路径含空格或特殊字符,且无法继承PATH - 务必把
/path/to/...替换为上一步查到的真实路径,不能写poetry run python
依赖安装与更新必须脱离 Sublime Text 完成
Sublime Text 不参与依赖管理,所有 poetry add、poetry install 都需在终端中完成:
- 确保当前目录下有
pyproject.toml - 运行
poetry install安装依赖(含[tool.poetry.dev-dependencies]) - 如只装生产依赖,加
--no-dev参数 - 更新依赖后,构建系统无需重启,只要解释器路径没变,
poetry run pip list查到的包就会被加载
别指望在 Sublime 里点个菜单就 add requests —— 那不是编辑器该干的事。
常见错误:为什么 import 总报 ModuleNotFoundError
根本原因只有一个:构建系统调用的 Python 解释器不是 Poetry 创建的那个。典型表现:
- 终端里
poetry run python -c "import requests"成功,但 Sublime 按Ctrl+B就失败 -
poetry env info --path显示虚拟环境路径,但构建系统里写的路径少了一个bin/或多了一个pyvenv.cfg - 用了
cmd而非shell_cmd,导致 Windows 下路径解析失败
验证方式很简单:在 Python 文件里加一行 import sys; print(sys.executable),运行看输出是否和 poetry run python -c "import sys; print(sys.executable)" 一致。不一致,就说明构建系统配错了。
Poetry 和 Sublime Text 的协作边界很清晰:Poetry 负责环境与依赖,Sublime 只负责调用那个环境里的解释器。越想让 Sublime “接管” Poetry,就越容易掉进路径、PATH、shell 环境变量的坑里。


















