You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在VS Code远程开发中调试Python 3.6?

解决方案:VS Code单步配置调试Python 3.6.8(需sudo权限)

针对你遇到的问题,以下几个方案可以实现单步VS Code配置完成调试:

方案一:配置sudo免密执行debugpy启动命令

通过修改sudoers文件,让你的用户无需输入密码就能执行启动debugpy的特定命令,这样VS Code的任务和调试配置可以自动完成启动流程。

  1. 远程设备上执行:
    sudo visudo
    
  2. 在文件末尾添加一行(替换your_username为你的远程用户名,/path/to/your/my_code.py为脚本的绝对路径):
    your_username ALL=(ALL) NOPASSWD: /usr/bin/python3 -m debugpy --listen 0.0.0.0:5678 --wait-for-client /path/to/your/my_code.py
    

    注意:使用0.0.0.0代替固定IP,允许从任何地址连接,更适配VS Code远程环境。

  3. 保存并退出visudo(按Ctrl+O回车保存,Ctrl+X退出)。

配置VS Code调试launch.json

在远程工作区的.vscode/launch.json中添加以下配置:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Attach to Remote Debugpy",
            "type": "python",
            "request": "attach",
            "connect": {
                "host": "1.2.3.4", // 替换为你的设备IP
                "port": 5678
            },
            "preLaunchTask": "Start Remote Debugpy",
            "justMyCode": false
        }
    ]
}

配置VS Code任务tasks.json

在远程工作区的.vscode/tasks.json中添加启动debugpy的任务:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Start Remote Debugpy",
            "type": "shell",
            "command": "sudo python3 -m debugpy --listen 0.0.0.0:5678 --wait-for-client /path/to/your/my_code.py",
            "problemMatcher": [],
            "runOptions": {
                "runOn": "folderOpen"
            }
        }
    ]
}

现在点击VS Code调试栏的"Attach to Remote Debugpy",就能自动启动debugpy并完成连接调试。


方案二:使用VS Code Sudo扩展简化权限操作

通过VS Code的Sudo扩展,让任务或终端自动以sudo权限运行,无需手动处理密码。

  1. 在远程VS Code窗口中搜索并安装Sudo扩展。
  2. 修改tasks.json中的启动命令,让任务自动以sudo权限执行:
    {
        "version": "2.0.0",
        "tasks": [
            {
                "label": "Start Remote Debugpy",
                "type": "shell",
                "command": "python3 -m debugpy --listen 0.0.0.0:5678 --wait-for-client /path/to/your/my_code.py",
                "problemMatcher": [],
                "options": {
                    "env": {
                        "SUDO_ASKPASS": "/usr/bin/ssh-askpass"
                    }
                },
                "args": [],
                "runOptions": {
                    "elevated": true
                }
            }
        ]
    }
    
  3. 配合方案一中的launch.json配置,即可单步启动调试。

方案三:消除脚本的sudo依赖(推荐)

如果脚本需要sudo是因为访问硬件资源(如串口、GPIO)或系统文件,可以通过调整权限让普通用户直接运行,彻底避免sudo需求:

  1. 找出脚本依赖的资源,比如串口设备/dev/ttyUSB0,将用户添加到对应组:
    sudo usermod -aG dialout your_username
    

    不同设备对应的组可能不同,比如GPIO通常是gpio组,可通过ls -l /dev/your_device查看所属组。

  2. 或者直接修改资源文件的权限:
    sudo chmod 666 /dev/your_device
    
  3. 测试普通用户能否运行脚本:
    python3 my_code.py
    
  4. 若能正常运行,直接配置VS Code远程调试的launch.json(无需preLaunchTask):
    {
        "version": "0.2.0",
        "configurations": [
            {
                "name": "Remote Python Debug",
                "type": "python",
                "request": "launch",
                "program": "/path/to/your/my_code.py",
                "pythonPath": "/usr/bin/python3",
                "justMyCode": false
            }
        ]
    }
    
    此时直接启动调试即可,VS Code会自动在远程设备上启动debugpy并连接。

内容的提问来源于stack exchange,提问作者mxwQuestion

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 22:05:59