VS Code远程服务器Python脚本调试问题咨询
远程服务器Python调试问题解答
1. launch.json的正确存放位置
当使用VS Code的Remote SSH扩展连接远程服务器开发时,launch.json必须存放在远程服务器上你打开的工作目录下的.vscode文件夹中。本地用户目录下的.vscode是针对本地工作区的配置,和远程开发环境无关,远程调试的配置需要放在远程工作区的.vscode里才能生效。
2. 调试工具栏(Ctrl+Shift+D)的正确使用及Attach模式问题
关于SSH隧道
你手动执行的ssh -2 -L 5678:localhost:5678 user@remoteserver是多余的——VS Code的Remote SSH扩展已经自动完成了远程端口到本地的转发,不需要手动建立隧道。
pathMappings配置
当通过Remote SSH挂载远程目录后,VS Code的${workspaceFolder}已经对应远程的工作目录,此时pathMappings需要确保本地VS Code看到的文件路径和远程实际路径对应:
localRoot设为${workspaceFolder}(VS Code本地显示的远程工作区路径)remoteRoot设为远程服务器上工作目录的绝对路径(比如/home/yourname/your_project,不要用相对路径.,避免路径解析错误)
Attach模式调试步骤
Attach模式需要先在远程服务器上启动带debugpy监听的脚本,再在VS Code中触发调试:
- 在远程服务器的终端(VS Code内置的远程终端即可)执行:
这条命令会让脚本在debugpy监听5678端口后暂停,等待调试器连接python -m debugpy --listen 5678 --wait-for-client your_script.py - 在VS Code的调试面板(Ctrl+Shift+D)选择「Python Debugger: Attach」配置,点击启动按钮即可连接调试
3. 调试带参数的Python脚本
不需要额外安装扩展,直接修改launch.json中的启动配置,添加args字段即可。比如针对你的python myScript.py --file=f.json命令,修改后的配置如下:
{ "version": "0.2.0", "configurations": [ { "name": "Python Debugger: Attach", "type": "debugpy", "request": "attach", "port": 5678, "host": "localhost", "pathMappings": [ { "localRoot": "${workspaceFolder}", "remoteRoot": "/home/yourname/your_project" } ] }, { "name": "Python Debugger: Python File with Args", "type": "debugpy", "request": "launch", "program": "${file}", "args": ["--file=f.json"] } ] }
如果需要动态输入参数,也可以使用${command:pickArgs}变量,调试时会弹出输入框让你填写参数。
内容的提问来源于stack exchange,提问作者paul18fr
相关产品推荐
相关产品推荐

