“command not found: code”是path问题,需在vscode中执行shell command: install 'code' command in path并重启终端验证;离线安装扩展须用绝对路径、加引号处理空格、加--allow-unverified绕过签名验证,且必须彻底退出vscode进程才能生效。

code --install-extension 能离线安装,但不是“有文件就能跑”——路径写错、命令没注册、签名不验证、进程没退出,任一环节出问题都会静默失败或装了不用。
command not found: code 是 PATH 问题吗?
不是。VSCode 默认不把 code 命令写入系统 PATH,哪怕你重装十遍也一样。它需要手动启用:
- 在 VSCode 里按
Ctrl+Shift+P(macOS 是Cmd+Shift+P),输入并执行 Shell Command: Install 'code' command in PATH - 执行后必须重启终端(不是 VSCode),否则旧 shell 进程看不到新 PATH
- 验证:新开终端运行
which code,有输出才表示成功;没输出就别往下试
路径和参数怎么写才不报错?
这个命令对路径格式极其敏感,错一个字符就失败,且错误提示极简(常只报 ENOENT 或直接无响应):
- 必须用绝对路径:
code --install-extension /home/user/ext/prettier-9.10.3.vsix,相对路径如./prettier.vsix一律无效 - 路径含空格或中文时,必须加英文双引号:
code --install-extension "C:/my extensions/python-2024.6.0.vsix" - Windows 推荐正斜杠写法(
C:/...),反斜杠C:\...在某些 shell 下会触发转义 - 加
--allow-unverified参数绕过签名验证:code --install-extension python.vsix --allow-unverified,离线环境无法连微软证书链,不加这个参数会卡住或报INVALID_SIGNATURE
装完为什么扩展面板里看不见?
装成功 ≠ 启用成功 ≠ 功能可用。常见断点不在安装过程,而在后续状态:
- 插件默认是禁用状态,必须手动点「启用」,或完全退出 VSCode(包括右下角托盘图标里的进程),再重新打开
- 语言类插件(如
ms-python.python)只装.vsix不等于能用——首次启用会尝试下载 LSP 二进制(如pyright-server),离线时卡在 “Downloading…” 状态栏,此时需提前在有网机器上完整触发一次下载,再拷贝整个~/.vscode/extensions/ms-python.python-2024.6.0/目录过去 - 运行
code --list-extensions看不到刚装的 ID?大概率是 VSCode 还在后台运行,杀干净再试
版本不兼容时会报错吗?
不会。VSCode 静默拒绝安装,连错误提示都不给。比如插件 package.json 里声明 "engines": {"vscode": "^1.85.0"},而你本地是 1.79.2,命令执行后看似成功,但插件根本不会出现在列表里。
提前验证方法:
- 解压
.vsix(它本质是 ZIP):unzip -p plugin.vsix package.json | grep engines - 查本地 VSCode 版本:
code --version - 不匹配?去 Marketplace 的
/versionhistory页面手动选旧版下载,例如https://marketplace.visualstudio.com/items/ms-python.python/versionhistory
最易被忽略的其实是「装完没退出 VSCode」——托盘进程还在,插件目录的变更就不会被加载,所有操作都白费。离线环境下没有网络反馈,只能靠彻底重启来确认是否真正落地。











