插件功能残缺是因离线安装未自动下载Pylance、debugpy等运行时依赖;需手动下载对应平台VSIX包及debugpy分发目录,并在settings.json中正确配置路径与版本兼容。

插件装上了但功能残缺,不是插件坏了,而是它依赖的组件根本没落地——离线安装时 VSCode 不会自动下载 Pylance、debugpy、jedi 这类运行时依赖,必须手动补全。
为什么“从 VSIX 安装”后 Python 补全失效
VSCode 的 ms-python.python 插件本身只是个壳,真正干活的是它拉起的外部语言服务器和调试器。离线安装 .vsix 时,这些二进制组件(如 pylance、debugpy)不会被包含进去,插件启动后发现找不到 pylance-server 就直接静默降级,只保留基础语法高亮。
- 打开命令面板(
Ctrl+Shift+P),输入Developer: Toggle Developer Tools,切到 Console 标签页,搜索pylance或debugpy,大概率能看到ENOENT错误 - 右下角 Python 解释器路径显示正常 ≠ 语言服务器就绪;检查状态栏是否出现
Pylance (v2024.8.1)字样,没有就是没加载成功 - 不要指望插件自动触发
pip install debugpy—— 离线环境下这行根本不会执行,且 VSCode 也不具备在用户虚拟环境中自动 pip 的权限
离线补装 Pylance 和 debugpy 的实操步骤
必须用可联网机器提前打包好对应平台的二进制包,再拷入内网。关键不是“装插件”,而是“把语言服务器二进制丢到 VSCode 能找到的地方”。
- 在联网机上访问 https://www.php.cn/link/b2024d4f1f0a55147063872fb62fc8ac,下载对应平台的
pylance-win32-ia32.vsix(Windows 32 位)、pylance-win32-x64.vsix(Windows 64 位)或pylance-darwin-arm64.vsix(macOS M 系列) - debugpy 需要 pip 安装:在联网机激活目标 Python 版本的虚拟环境(如
python -m venv venv→source venv/bin/activate),运行pip install --target ./debugpy_dist debugpy,把生成的debugpy_dist/文件夹整体拷进离线机项目目录 - 在离线机 VSCode 中,打开
settings.json,添加:"python.defaultInterpreterPath": "./venv/bin/python",<br>"python.languageServer": "Pylance",<br>"python.debugpyPath": "./debugpy_dist/debugpy/__main__.py"
验证是否真生效:别信状态栏,要看进程和日志
状态栏显示 Pylance 并不等于它正在工作。很多用户卡在这一步,以为配置完了,其实语言服务器压根没起来。
- 在 VSCode 终端中运行
ps aux | grep pylance(macOS/Linux)或tasklist | findstr pylance(Windows),确认有node进程加载了pylance-server - 按
Ctrl+Shift+P输入Python: Show Output,选择Python面板,滚动到底部看是否有类似Starting Pylance language server和Connection to server got closed的日志 —— 后者说明启动失败 - 如果看到
Failed to load module 'debugpy',检查python.debugpyPath指向的路径里是否存在__main__.py,且该文件能否被当前 Python 解释器直接执行(python ./debugpy_dist/debugpy/__main__.py --help应有输出)
最易被忽略的一点:Pylance 和 debugpy 的版本必须与你安装的 ms-python.python 插件版本兼容。比如插件是 2024.6.0,就不能随便装个 pylance-2023.12.0 —— 它们之间有隐式 ABI 协议,错配会导致静默崩溃。版本号得从插件发布页的 package.json 里反查依赖字段,不能靠猜。


















