Sublime Text 插件报 Dependency error 的本质是依赖未被正确安装或定位,因 Package Control 不自动处理多数插件的依赖声明;需手动下载对应 .sublime-package 文件放入 Packages/ 目录并重启。

Sublime Text 插件报 Dependency error,本质是插件声明了依赖但 Sublime 没法自动安装或定位到对应模块——这不是网络问题,也不是插件本身坏了,而是依赖路径、Python 版本或加载顺序没对上。
为什么 Package Control 不自动装依赖?
Sublime 的插件生态里,dependencies 字段只在 Package Control 3.0+ 的某些特定格式(如 .sublime-package 内含 dependencies.json)中被识别。绝大多数第三方插件(尤其是 GitHub 直接 clone 的)压根没走这套机制,只是在文档里写一句“需手动安装 mdpopups”,而 Package Control 不会读 README。
常见表现:
- 控制台(
Ctrl+`)反复打印ImportError: No module named 'mdpopups' - 插件功能失效,但不报红,只静默退出
-
Preferences → Package Settings里找不到该插件的配置项
手动安装依赖的正确路径和顺序
Sublime 的 Python 环境是隔离的,不能用系统 pip 装;所有依赖必须放进 Packages/ 或 Installed Packages/ 下,且命名/结构要严格匹配插件 import 语句。
操作步骤:
- 查清插件实际 import 的模块名,比如
import mdpopups→ 就要装mdpopups,不是sublime-mdpopups - 去对应仓库 Releases 页面下载最新
.sublime-package文件(不是源码 ZIP),例如 mdpopups/releases - 把下载的
mdpopups.sublime-package放进Packages/目录(不是Installed Packages/)——Sublime 启动时会自动解压它 - 重启 Sublime,再打开控制台确认是否还有 import 报错
常见依赖模块及对应安装方式
这些模块高频出现,直接给出可靠安装源和注意点:
-
mdpopups:必须用官方 release 的.sublime-package,GitHub 源码 zip 会因缺少__init__.py或资源路径错乱导致TemplateNotFound -
python-jinja2:不要装 PyPI 版,要用 skuroda 的 Sublime 分支,否则 jinja2 加载模板时路径解析失败 -
pygments:Sublime 自带精简版,但部分插件(如MarkdownPreview)需要完整版 → 下载pygments.sublime-package(非 pip install),放Packages/ -
urllib3/chardet:现代插件常用,但 Sublime 4 内置的是冻结版本,升级需替换Lib/python38/下对应 .pyd 或 .so —— 强烈不建议,改用兼容老版本的插件分支
验证依赖是否真正生效
别只看控制台没报错就以为搞定了。有些模块 import 成功,但运行时报 AttributeError: module 'xxx' has no attribute 'yyy',说明版本不匹配。
快速验证方法:
- 在控制台执行:
import mdpopups; print(mdpopups.__version__)
→ 看输出是否为预期版本(如4.5.0) - 检查插件代码里 import 行附近有没有
from xxx import yyy,然后手动 import yyy 看是否成功 - 如果插件用了
sublime.load_resource()加载模板或 CSS,确保依赖包里有对应路径(如mdpopups/st3/mdpopups/css/default.css)
最麻烦的情况是多个插件依赖同一模块但要求不同版本——Sublime 不支持虚拟环境,只能选一个妥协。这时候得看哪个插件更关键,或者找 fork 版本做 patch。










