最准确验证python插件是否安装成功的方式是运行code --list-extensions | grep python(linux/macos)或code --list-extensions | findstr python(windows),仅输出ms-python.python才表示核心插件已正确安装;若无输出或仅显示ms-python.pylance等,则说明主插件缺失。

查 code --list-extensions 输出是否含目标插件 ID
这是最硬的验证方式,不依赖 GUI 状态或视觉反馈。插件没出现在这个列表里,就等于根本没装进 VSCode 的扩展系统。
在终端(或 VSCode 内置终端)中运行:
code --list-extensions | grep python
Linux/macOS 用 grep,Windows 用 findstr python。只应输出一行,比如 ms-python.python——注意不是 ms-python.pylance 或其他变体。如果无输出,说明核心插件缺失,别急着调解释器或 LSP。
- 输出为空 → 插件未注册,重查安装路径、
.vsix完整性、code命令是否可用 - 输出是
ms-python.python-2024.6.0这类带版本号的 → 正常,VSCode 已识别 - 输出多个相似 ID(如
ms-python.python和ms-python.vscode-pylance)→ 可能混装了旧版或冲突插件,建议清空Extensions目录后重装
看 Output 面板里对应语言服务器有没有启动日志
很多插件(如 Volar、Prettier、Python)安装只是“注册”,首次触发才拉起服务。离线环境卡在这步时,GUI 不报错,但功能全失效。
打开 Output 面板(Ctrl+Shift+U),从下拉菜单切换到对应通道,例如:
-
Vue Server→ 查找Starting server和Server started -
Python→ 查找Python interpreter path或pyright启动信息 -
Prettier→ 查找Prettier CLI path或Using version
如果面板里只有 Starting... 卡住,或直接报 spawn ENOENT,说明 LSP 二进制缺失——你只拷了 .vsix,没把整个插件目录(含 node_modules/@volar/vue-language-server/bin/volar-server 这类路径)迁过来。
确认右下角状态栏显示正确语言模式和功能开关
插件装了 ≠ 当前文件被识别。尤其 Vue、TypeScript、Markdown 类插件,依赖编辑器对文件类型的判断。
打开一个 .vue 文件,看右下角状态栏显示的是 Vue 还是 Plain Text;开 .py 文件,看是否显示 Python 解释器路径。如果显示错误,问题不在插件本身,而在:
- 文件没关联语言模式:右键标签页 →
Change Language Mode→ 手动选Vue或Python - 工作区禁用了扩展:按
Ctrl+Shift+P输入Extensions: Show Enabled Extensions,确认插件在当前工作区是启用状态 - 远程上下文干扰:左下角有
SSH或WSL?插件必须在对应远程环境中单独安装,本地装的不会透传过去
检查 Extensions 目录结构是否完整
手动解压复制方式最容易出错的位置:目录名不对、内容放错层级、漏掉 native 二进制。
进入你的扩展目录:
- Windows:
%USERPROFILE%\AppData\Roaming\Code\Extensions\ - macOS/Linux:
$HOME/.vscode/extensions/ - WSL:
$HOME/.vscode-server/extensions/
找到对应插件文件夹(如 johnsoncodehk.volar-1.12.0),执行:
unzip -l johnsoncodehk.volar-1.12.0.vsix | head -n 10
对比该目录下是否有 package.json、node_modules/、以及关键子路径如 node_modules/@volar/vue-language-server/bin/。如果只有零散 JS 文件、没有 bin/ 目录,说明 LSP 服务根本没带进来,补全再重启 VSCode。
最后一步永远是彻底退出 VSCode:包括托盘进程(Windows)、后台服务(macOS)、code --status 显示无运行实例——否则缓存不刷新,改了也白改。











