package control 连接失败主因是网络链路问题,需修复直连 packagecontrol.io 和 raw.githubusercontent.com 的路径;st4 用户必须用官网最新脚本(含 urllib.request),st3 用户需匹配正确哈希值。

Package Control 连接失败,90% 是网络链路问题,不是插件或编辑器故障。它本质是 Python 脚本发起 HTTPS 请求,国内直连 packagecontrol.io 和 raw.githubusercontent.com 极易被阻断、超时或 SSL 握手失败——必须针对性修复网络路径,而非反复重装。
手动安装 Package Control 失败?先确认版本和脚本匹配
自动安装脚本失效,常见原因是 ST3/ST4 混用旧脚本,或哈希校验值过期。控制台报 NameError: name 'urllib2' is not defined 就是用了 ST3 的脚本跑在 ST4 上。
- 执行
print(sublime.version())确认版本:ST4 返回 4xxx,ST3 返回 3xxx - ST4 用户必须用官网
https://packagecontrol.io/installation页面自动识别后给出的最新脚本(含urllib.request) - ST3(Build ≥ 3176)可用社区验证有效的脚本,但哈希值必须与当前官网一致,例如
h = '7183a2d3e96f11eeadd761d777e62404';旧版( - 粘贴前检查是否带中文引号、换行或空格;执行后看到
Success才算写入成功,否则文件没落盘
装上了却提示 “There are no packages available”?channel 地址根本没通
这是最常被忽略的一环:Package Control 装好了,但它的插件列表地址 https://packagecontrol.io/channel_v3.json 仍走境外 CDN,hosts 只改 packagecontrol.io 不够。
- 浏览器直接打开
https://gitee.com/akira-cn/package_control_channel/raw/master/channel_v3.json,能返回 JSON 内容才算有效(注意结尾必须是/channel_v3.json,不是/channel.json) - 在
Preferences → Package Settings → Package Control → Settings – User中填入:{ "channels": [ "https://gitee.com/akira-cn/package_control_channel/raw/master/channel_v3.json" ] } - 别用已失效的镜像(如 php.cn 链接),也别漏掉
/raw/master/路径段;保存后必须重启 Sublime,设置不热重载
开了 Clash/Surge 却还是连不上?Sublime 不读系统代理
Clash 默认监听 127.0.0.1:7890,但 Sublime 的 urllib.request 不继承系统代理,必须显式配置,且格式有硬性要求。
- 在
Settings – User中加入:{ "http_proxy": "http://127.0.0.1:7890", "https_proxy": "http://127.0.0.1:7890" } - 协议必须用
http://,即使目标是 HTTPS 站点;端口必须与你代理工具实际监听端口一致(Clash 可能是 7891,Surge 是 6152) - 不要加认证字段(如
user:pass@),Sublime 的 urllib 不支持带认证的代理字符串 - 设完后在控制台运行:
import urllib.request; urllib.request.urlopen('https://packagecontrol.io').getcode(),返回200才算真正通了
删缓存、清残留、重装才是兜底动作
镜像和代理都设了还失败?大概率是旧缓存或损坏包卡住了,跳过清理这步等于白调。
- 完全退出 Sublime(macOS 注意菜单栏「退出 Sublime Text」,不只是关窗口)
- 删除以下两个位置:
Installed Packages/Package Control.sublime-package-
Packages/Package Control/(如果存在)
- 再删缓存:
Cache/Package Control/下所有.json和.cache文件 - 重新手动安装或放
.sublime-package到Installed Packages/目录(不是Packages/),重启生效
复杂点在于:同一个问题可能叠加 DNS 污染 + 代理未生效 + channel 地址失效 + 缓存残留,必须按顺序逐层验证,而不是同时改一堆配置然后看结果——控制台里那句 URLError: <urlopen error connection timed out></urlopen> 或 ssl.CertificateError 才是你该盯住的关键线索。











