进度条卡在“downloading…”或“installing…”不动,本质是网络请求失败,需换用vscode.cdn.azure.cn镜像源、彻底关闭vscode进程、改用code --install-extension命令行安装,并注意代理配置与证书校验。

进度条卡在“Downloading…”或“Installing…”不动,基本可以断定是网络层请求失败,不是插件本身有问题,也不是你操作错了。
为什么marketplace.visualstudio.com请求会卡住
VS Code 默认直连微软官方扩展市场,但该域名在国内常被 DNS 污染、TLS 握手失败或连接重置。你看到的“卡住”,其实是底层 Node.js 的 fetch 请求一直 pending,最终超时却不报错——UI 层只显示进度条,不提示真实原因。
- 打开 Developer Tools(
Ctrl+Shift+P→Developer: Toggle Developer Tools),切到 Network 标签页,再点一次安装,观察是否有大量marketplace.visualstudio.com请求状态为pending或failed - 错误日志里若出现
ERR! getaddrinfo ENOTFOUND或connect ETIMEDOUT,就是典型的 DNS 或连接问题 - 别信“重试几次就好了”——这类问题不会随时间自动恢复,必须改请求路径或绕过网络链路
用vscode.cdn.azure.cn镜像源替换官方地址
这是目前最稳定、更新及时的国内替代方案,无需代理,兼容所有 VS Code 版本(1.75+),且不需要额外配置证书或代理开关。
- 关闭 VS Code 全部进程(Windows 任务管理器、macOS 活动监视器里确认没有
Code Helper或Code进程残留) - 编辑用户设置文件:
%APPDATA%\Code\User\settings.json(Windows)或~/Library/Application Support/Code/User/settings.json(macOS)或~/.config/Code/User/settings.json(Linux) - 添加这两行(注意逗号分隔,末尾必须有
/):"extensions.gallery.serviceUrl": "https://vscode.cdn.azure.cn/extensionGallery/extensionGallery/", "extensions.gallery.cacheUrl": "https://vscode.cdn.azure.cn/extensionGallery/extensionGallery/publishers"
- 保存后彻底重启 VS Code,再进扩展页——首次加载可能稍慢,但后续安装成功率接近 100%
code --install-extension命令行安装更可靠
图形界面的“Install from VSIX”容易静默失败,尤其当插件含 native 二进制(如 Python、C++ 扩展)时;而命令行会立刻输出具体错误,方便定位。
- 先确保
code命令已加入 PATH:在 VS Code 中按Ctrl+Shift+P→ 输入Shell Command: Install 'code' command in PATH启用 - 下载
.vsix文件后,用绝对路径执行:code --install-extension "/home/user/Downloads/ms-python.python-2024.6.0.vsix"(Linux/macOS)或code --install-extension "C:\Users\Name\Downloads\ms-python.python-2024.6.0.vsix"(Windows,含空格必须加引号) - 常见报错直接可读:
Extension 'ms-python.python' is not compatible with the current version of VS Code→ 说明package.json里的"engines": {"vscode": "^1.80.0"}和你本地版本不匹配
代理配置最容易踩的坑
VS Code 不继承系统代理,也不读取终端环境变量(如 http_proxy),手动填错一个字符就会静默失效。
-
http.proxy必须带协议头,写成http://127.0.0.1:7890才有效,不能只写127.0.0.1:7890 -
http.proxyStrictSSL设为false可绕过自签名证书错误,但仅限调试,长期开启有安全风险 - 企业网络下,务必把
"*.visualstudio.com"加入http.proxyBypassList,否则代理工具可能转发失败导致握手卡死 - 某些杀毒软件(如 360、腾讯电脑管家)会拦截对
vscode.cdn.azure.cn的 HTTPS 请求,不弹窗、不报错——验证方式:浏览器直接访问你设的serviceUrl,看能否返回 JSON
真正卡住的时候,别反复点击“重试”,那只是让失败循环发生;关键动作就三个:换源、清进程、走命令行。复杂点在于不同网络环境下的 bypass 策略要配对,比如公司防火墙 + 镜像源 + 代理绕过列表,少一个环节都可能白忙活。











