code --install-extension离线安装失败主因是VSCode进程未彻底关闭、缺少--allow-unverified参数绕过签名校验,且仅装ms-python.python.vsix不够,必须同步安装vscode-pylance、debugpy等严格版本对齐的依赖插件,并确保language server等运行时组件已通过联网机预下载并整目录迁移。

code --install-extension 命令总失败?先关干净再加参数
离线安装时 code --install-extension 报错,90% 不是路径写错,而是 VSCode 进程没杀干净。Windows 下托盘图标常驻后台,Code.exe 进程可能仍在运行;macOS/Linux 也可能残留 code helper 子进程。
必须执行以下三步:
- 关闭所有 VSCode 窗口(包括设置页、欢迎页)
- 任务管理器(Windows)或活动监视器(macOS)中彻底结束所有
Code相关进程 - 命令中必须带
--allow-unverified:例如code --install-extension ms-python.python-2024.6.0.vsix --allow-unverified,否则因证书链无法验证直接报INVALID_SIGNATURE
如果提示 command not found: code,说明 CLI 未注册:在 VSCode 中按 Ctrl+Shift+P 输入 Shell Command: Install 'code' command in PATH 并回车启用。
只下 ms-python.python.vsix 就够了?依赖插件漏一个都不行
ms-python.python 是外壳,不带任何语言服务或调试器——它启动后会立刻尝试联网下载 ms-python.vscode-pylance 和 ms-python.debugpy。离线环境下卡在 “Downloading Pylance” 就是这个原因。
立即学习“Python免费学习笔记(深入)”;
必须同步下载并安装全部显式依赖:
- 查真实依赖:解压
.vsix文件(用unzip -l xxx.vsix),打开根目录下的package.json,看extensionDependencies字段 - 常见必装组合:
ms-python.python+ms-python.vscode-pylance+ms-python.debugpy,三者版本号需严格对齐(如全为2024.6.0) - 别忽略底层依赖:
ms-vscode.js-debug是 Python 调试器的运行时基础,漏掉会导致断点完全无效
最稳做法:在同版本联网机上完整安装一次,再执行 code --list-extensions 导出全部 ID 列表,逐个下载。
拖拽 .vsix 文件没反应?不是插件问题,是窗口状态不对
VSCode 对拖拽安装有硬性限制,静默失败很常见。必须同时满足:
- VSCode 已启动且**获得系统焦点**(任务栏图标高亮)
- 当前窗口不是全屏、不是远程桌面(RDP/TeamViewer)、没连 SSH/Dev Container
- 已打开一个文件夹(
File → Open Folder…),不能停留在初始空白页 - 拖入目标是编辑器主区域(白色代码区),不是侧边栏、终端或设置页
- 右下角状态栏没有显示
Extensions disabled by policy(组策略禁用)
拖进去后无提示 ≠ 安装失败,也 ≠ 成功。务必打开扩展面板(Ctrl+Shift+X)搜索插件名确认是否出现在列表里,并检查右上角是否显示“已启用”。
装完插件 Python 还不提示、不调试?language server 没真正落地
.vsix 只含插件逻辑,不包含 pyright(Pylance 底层)、debugpy 二进制等 runtime 依赖。这些组件首次激活时才下载——离线环境必然失败。
要让功能真正可用,必须走“先联网跑通,再整体迁移”路线:
- 在联网机器上:安装全部
.vsix→ 打开一个.py文件 → 等状态栏变绿 / 输出面板(Python频道)不再滚动 → 关闭 VSCode - 找到完整扩展目录:
Windows:%USERPROFILE%\.vscode\extensions\ms-python.python-2024.6.0\
macOS/Linux:$HOME/.vscode/extensions/ms-python.python-2024.6.0/ - 确认该目录下存在
out/client/pyright或node_modules子路径,说明 native 二进制已就位 - 整目录复制到内网机对应路径,**不要只拷
.vsix,也不要只拷package.json**
最后一步容易被跳过:重启 VSCode 后,必须重新打开一个 .py 文件才能触发初始化。补全、格式化、调试这些能力,都是在这次打开时才真正加载的。


















