debugpy:微软开源的 Python 调试器

debugpy 是微软开源的一款 Python 调试器,目前收获了 2,415 个 Star。它完整实现了 Debug Adapter Protocol,面向 Python 3 提供标准化的调试能力。

这个工具的定位很清晰:让 Python 程序的调试不再依赖特定 IDE。很多开发者调试 Python 时,要么用编辑器自带的调试器,要么在代码里写 print。debugpy 提供了第三种选择,既能在命令行独立运行,也能嵌入代码作为库调用,灵活性比较高。

正文顶部截图

两种用法,覆盖不同场景

debugpy 提供 CLI 和 Import 两种使用方式。

命令行模式下,可以直接启动脚本并开启调试监听。最常见的用法是指定一个端口,debugpy 会在这个端口等待调试客户端连接:

python -m debugpy --listen localhost:5678 myfile.py

加上 --wait-for-client 参数后,程序会在调试客户端连接完成后才开始执行。这在排查启动阶段的问题时很有用,能确保你不遗漏任何初始化逻辑。

除了脚本文件,它也支持模块调试。用 -m 参数代替文件名,就能调试一个 Python 模块,所有命令行参数都会原样传递给被调试的模块。

更实用的是进程附加功能。如果你有一个已经在运行的 Python 进程,可以通过 PID 直接把调试器注入进去,不需要重启程序。这在生产环境排查问题时很有价值。

在代码中引入 debugpy 也同样简单。调用 debugpy.listen() 开启监听,传入主机和端口即可。配合 debugpy.wait_for_client() 可以阻塞程序执行,直到调试器连接。它还支持标准的 breakpoint() 函数,可以在代码任意位置设置断点,如果调试器未连接,断点会自动跳过,不会影响正常运行。

README区域截图

远程调试是亮点

debugpy 支持监听不同的网络接口。默认只监听 127.0.0.1,适合本地开发。如果需要从另一台机器连接,可以把它绑定到 0.0.0.0,这样就能在局域网或服务器环境中进行远程调试。

这个功能在容器化部署和服务器问题排查时很实用。开发者在本地用 VS Code 或其他支持 DAP 的客户端,就能连接到远程运行的 Python 程序,像调试本地代码一样单步执行、查看变量。

实际用起来如何

debugpy 的文档覆盖了 CLI 和 API 的完整用法,每个功能都有代码示例。日志功能也做得比较到位,通过 --log-to 参数或 debugpy.log_to() 可以把调试器内部日志输出到指定目录,方便排查调试器本身的问题。子进程调试也有专门的支持,可以配置是否跟踪被调试进程创建的子进程。

使用过程中需要注意一点:把调试端口绑定到公共接口时,要考虑安全风险。因为任何能连上该端口的人都能在调试进程里执行代码,所以建议只在安全的网络环境中开放远程调试。

适合谁用

如果你在用 VS Code 或其他支持 DAP 的编辑器,debugpy 可以直接对接,调试体验比较一致。对于需要远程调试 Python 程序的开发者,这个工具能省去很多配置麻烦。

微软用 MIT 协议开源了 debugpy,代码完全开放,可以按需修改和部署。整体来看,这是一个解决实际问题的调试工具,接口设计简洁,文档齐全,值得 Python 开发者关注。

,这是一个解决实际问题的调试工具,接口设计简洁,文档齐全,值得 Python 开发者关注。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐