VSCode通过SSH FS连接远程主机时Python调试功能无法运行
问题描述
- 运行环境:Mac设备安装1.69.1版本VSCode,通过SSH FS插件连接远程代码仓库,本地托管仓库的调试功能可正常使用。
- 故障表现:对远程Python文件点击「运行」>「启动调试」或「运行而不调试」时,仅打开「运行和调试」面板,目标文件不会实际执行,面板无运行输出。

- 已排查操作:重装Python扩展、删除远程服务器上的
~/.vscode-server目录、重装Mac端VSCode,均未解决问题。 - 补充信息:该功能一周前可正常使用,暂未定位到触发异常的变更;在SSH FS连接的远程主机终端中执行
python test.py可正常运行。
当前使用的launch.json配置如下:
{ // 支持IntelliSense提示相关属性 // 悬停可查看现有属性说明 "version": "0.2.0", "configurations": [ { "name": "Python: Current File", "type": "python", "request": "launch", "program": "${file}", "console": "integratedTerminal", "justMyCode": true } ] }
版本详情
VSCode版本
Commit: b06ae3b2d2dbfe28bca3134cc6be65935cdfea6a Date: 2022-07-12T08:21:51.333Z Electron: 18.3.5 Chromium: 100.0.4896.160 Node.js: 16.13.2 V8: 10.0.139.17-electron.0 OS: Darwin x64 21.5.0
SSH FS插件版本
Id: Kelvin.vscode-sshfs Description: 基于SSH实现的文件系统、终端、任务提供器 Version: 1.25.0 Publisher: Kelvin Schoofs
故障原因
该问题为1.69版本VSCode与1.25.0版本SSH FS插件的兼容缺陷:SSH FS插件未将远程文件的正确路径传递给Python调试适配器,调试进程启动后找不到目标文件直接静默退出,因此面板无任何执行输出。终端手动执行python test.py走独立的命令执行链路,和调试链路无关,因此运行正常。
修复方案
按优先级依次尝试:
- 降级SSH FS插件至1.24.1版本
- 打开VSCode扩展面板,找到SSH FS插件,点击卡片右下角的下拉箭头,选择「安装另一个版本」,选中1.24.1版本后重启VSCode即可恢复。
- 若需保留当前插件版本,修改
launch.json配置,手动补全路径映射参数,参考配置如下:{ "version": "0.2.0", "configurations": [ { "name": "Python: Current File", "type": "python", "request": "launch", "program": "${file}", "console": "integratedTerminal", "justMyCode": true, "cwd": "${fileDirname}", "pathMappings": [ { "localRoot": "${fileDirname}", "remoteRoot": "${fileDirname}" } ] } ] } - 长期稳定方案:替换为VSCode官方Remote-SSH扩展连接远程主机,官方扩展对Python调试链路做了完整适配,不会出现路径传递丢失的问题。
内容的提问来源于stack exchange,提问作者Devendra Mukharaiya
相关产品推荐
相关产品推荐

