VScode 中使用 Debugpy 调试远程 Python 服务器:从配置警告到成功迁移
2024-03-18 08:31:00
使用 VScode 中的 debugpy 调试远程 Python 服务器
问题:调试配置弃用警告
在 VScode 中使用 debugpy 调试远程 Python 服务器时,可能会出现以下警告:
此配置即将弃用。请将 “python” 替换为 “debugpy” 以使用新的 Python 调试器扩展。
解决方案:迁移到 debugpy 配置
为了解决此问题,需要将 launch.json
文件中的调试配置从 "type": "python"
更新为 "type": "debugpy"
。
1. 迁移原始配置
原始配置如下:
{
"type": "python",
"request": "attach",
"name": "attach remote",
"host": "192.168.1.101",
"port": 8765,
"pathMappings": [
{
"localRoot": "${workspaceFolder}/...",
"remoteRoot": "/usr/app/..."
}
],
"justMyCode": false
}
将 "type": "python"
替换为 "type": "debugpy"
。
2. 添加连接信息
在 debugpy 配置中,需要添加远程服务器的连接信息,包括主机(host
)和端口(port
)。
更新后的配置如下:
{
"type": "debugpy",
"request": "attach",
"name": "attach remote",
"host": "192.168.1.101",
"port": 8765,
"pathMappings": [
{
"localRoot": "${workspaceFolder}/...",
"remoteRoot": "/usr/app/..."
}
],
"justMyCode": false
}
3. 解决错误:Property port is not allowed
转换到 debugpy 后,可能会遇到以下错误:
Property port is not allowed.
这是因为 debugpy 配置中不再支持 port
字段。需要使用 serverOptions
字段指定连接信息。
修改后的配置如下:
{
"type": "debugpy",
"request": "attach",
"name": "attach remote",
"serverOptions": {
"host": "192.168.1.101",
"port": 8765
},
"pathMappings": [
{
"localRoot": "${workspaceFolder}/...",
"remoteRoot": "/usr/app/..."
}
],
"justMyCode": false
}
注意事项
- 确保已安装 debugpy Python 包。
- 如果远程服务器使用非标准端口,则需要在防火墙中打开该端口。
- 根据需要调整路径映射以匹配本地和远程文件系统。
通过遵循这些步骤,应该能够使用 VScode 中的 debugpy 成功调试远程 Python 服务器。
常见问题解答
-
为什么需要使用 debugpy 进行远程调试?
debugpy 是用于 Python 的高级调试器,它提供比内置 Python 调试器更强大的功能和灵活性。 -
如何确保远程服务器已连接?
使用telnet <host> <port>
命令测试连接。如果服务器响应,则说明已连接。 -
为什么我的调试会话失败?
检查连接信息是否正确,并且防火墙中已打开正确的端口。 -
如何排除 debugpy 问题?
启用 debugpy 日志记录并检查日志以查找错误消息。 -
我可以使用 debugpy 调试其他语言的服务器吗?
debugpy 仅用于 Python 服务器调试。