如何在VS Code远程开发中调试Python 3.6?
解决方案:VS Code单步配置调试Python 3.6.8(需sudo权限)
针对你遇到的问题,以下几个方案可以实现单步VS Code配置完成调试:
方案一:配置sudo免密执行debugpy启动命令
通过修改sudoers文件,让你的用户无需输入密码就能执行启动debugpy的特定命令,这样VS Code的任务和调试配置可以自动完成启动流程。
- 远程设备上执行:
sudo visudo - 在文件末尾添加一行(替换
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远程环境。 - 保存并退出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权限运行,无需手动处理密码。
- 在远程VS Code窗口中搜索并安装Sudo扩展。
- 修改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 } } ] } - 配合方案一中的launch.json配置,即可单步启动调试。
方案三:消除脚本的sudo依赖(推荐)
如果脚本需要sudo是因为访问硬件资源(如串口、GPIO)或系统文件,可以通过调整权限让普通用户直接运行,彻底避免sudo需求:
- 找出脚本依赖的资源,比如串口设备
/dev/ttyUSB0,将用户添加到对应组:sudo usermod -aG dialout your_username不同设备对应的组可能不同,比如GPIO通常是
gpio组,可通过ls -l /dev/your_device查看所属组。 - 或者直接修改资源文件的权限:
sudo chmod 666 /dev/your_device - 测试普通用户能否运行脚本:
python3 my_code.py - 若能正常运行,直接配置VS Code远程调试的launch.json(无需preLaunchTask):
此时直接启动调试即可,VS Code会自动在远程设备上启动debugpy并连接。{ "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 } ] }
内容的提问来源于stack exchange,提问作者mxwQuestion
相关产品推荐
相关产品推荐

