package control 升级失败本质是旧版本残留与新版本路径错位导致静默失效,离线重装更可靠;st4 强制 sha256 校验使旧版无法升级,模块未加载致命令不可见;须删净旧文件、下载 180–220kb 官方离线包、拖入 installed packages/ 目录并完全重启。

Package Control 升级失败,本质是旧版本残留 + 新版本路径错位导致的静默失效,离线重装比“升级”更可靠。
为什么 Package Control: Upgrade Package 不起作用
ST4 的 Package Control 从 Build 4107 起强制校验 SHA256,旧版(尤其是 ST3 迁移过来的)无法触发升级流程;控制台可能显示 Package Control installed,但命令面板搜不到 Package Control: Install Package,说明 Python 模块根本没加载。这不是网络问题,而是模块注册失败。
- 运行
sublime.version()确认返回值是4xxx(如4143),否则别试 ST4 专用流程 - 打开
Preferences → Browse Packages…,上一级目录就是Installed Packages/,进去删掉所有含Package Control字样的文件(包括Package Control.sublime-package和可能存在的Package Control.old) - 别信浏览器下载页的“最新版”按钮——必须用官网当前有效的离线包,大小在
180–220 KB之间;小于100 KB就是下载不全,直接丢弃
离线安装 Package Control.sublime-package 的硬性要求
Sublime 对 .sublime-package 文件有唯一合法入口:Installed Packages/ 目录。放错位置(比如拖进 Packages/ 或子文件夹)等于没装,且不报错。
- 从 https://www.php.cn/link/2e5d5f65d3ef778b01366907d1f14445 下载(注意 URL 中空格是
%20) - 关闭 Sublime Text 全进程(Windows 右键任务栏图标选「退出」,macOS 菜单栏选「Sublime Text → Quit Sublime Text」)
- 把下载好的
Package Control.sublime-package文件**直接拖入**Installed Packages/目录,不解压、不改名、不套文件夹 - 重启后立即验证:
Ctrl+Shift+P输入Package Control: List Packages,能列出插件即成功
升级后仍卡在 “Loading…” 或提示 “No packages available”
这表示 Package Control 本体已加载,但 channel 列表拉不下来——和升级无关,纯属网络或配置问题。
- 打开
Preferences → Package Settings → Package Control → Settings – User - 确保
"channels"是有效数组,例如:{"channels": ["https://gitee.com/azl397985856/package_control_channel/raw/master/channel_v3.json"]} - 保存后必须完全退出并重启 Sublime,仅重载设置无效
- 如果浏览器打不开该 JSON 地址,换镜像或跳过,直接走手动插件安装(见下条)
绕过 Package Control 安装具体插件的离线方式
当 Package Control 卡死或你只需要一两个插件时,手动扔文件比等它恢复更快。
- 从 GitHub 下载 ZIP(如
https://github.com/sergeche/emmet-sublime/archive/refs/heads/master.zip),解压得到emmet-sublime-master/文件夹 - 重命名为插件官方名(
Emmet,大小写必须一致,去掉-master后缀) - 用
Preferences → Browse Packages…打开Packages/目录,把重命名后的文件夹**整体拖入根目录**(不是Packages/User/,也不是Installed Packages/) - 检查
Preferences → Settings用户配置中"ignored_packages"是否包含该插件名(如"Emmet"),若有则删掉并重启
最容易被忽略的是:ST4 对路径和命名的校验是启动时一次性完成的,改完配置或放完文件不完全退出再重启,就等于没做。控制台里 print(sublime.installed_packages_path()) 和 print(sublime.packages_path()) 返回的路径,才是你该信的唯一依据。











