你好,欢迎来到潮汕IT智库!
您的位置:首页 > IT资讯> 热点新闻 热点新闻
Debugpy —— 一个铁面无私明察秋毫的 Python 库
2024-03-05 09:01:36 作者: (评论0条)

一个小小的库,也许能避免重复造轮子,

一个不显眼的功能,也许能在关键时刻拯救我们,

一个出乎意料的方法,也许能激发更多创意灵感,

一个独特的技能,也许能成为我们的守护神……

有趣的 Python 库之旅,第 54 回



如果你常写代码,你就会对写代码简单,找 bug 贼难 这句话深有体会。

编程过程中,常常会遇到代码早就写完了,但有个 bug 迟迟难以找到。

上篇文章中,我们了解了如何主动放置因为参数数据类型引入的 bug,今天我们就了解一下,如何在更方便地调试,以便更高效地发现和定位 bug。

要做到这一点,就有必要了解一下一个强大的工具 ——debugpy,它将成为你调试程序的得力助手。

什么是  debugpy?

debugpy 是一个开源项目,由 Microsoft 团队开发,旨在为 Python 提供一个高性能、功能丰富的调试器,支持从 VS Code 到其他集成开发环境 (IDE) 的调试。

与标准库中的 pdb 相比,debugpy 提供了更多高级特性,比如远程调试和多线程处理等。

如果你是 VS Code 的拥趸,那很可能你已经在使用 debugpy 而不自知,因为它是 VS Code Python 扩展的核心调试组件。

项目地址:https://github.com/microsoft/debugpy

安装

尽管 debugpy 已经集成在 VS Code 中,但在其他环境中使用时可能需要单独安装。

通过 Python 的包管理工具 pip,可以轻松安装 debugpy

pip install debugpy

在安装过程中,请确保你的网络连接稳定,并且使用的是 Python 3.6 及以上版本。

基本功能

debugpy 的核心特性包括单步执行、断点设置、变量查看和修改等,下面是一些具体的基本功能介绍。

启动和连接到调试器

使用 debugpy,你可以以命令行的方式启动调试会话:

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

你也可以设置 --wait-for-client 参数来使代码执行暂停,直到调试器客户端连接上。

python -m debugpy --listen localhost:5678 --wait-for-client myfile.py

在代码中启用调试

除了命令行方式,debugpy 还允许你在代码中直接启用调试:

import debugpy
debugpy.listen(("localhost"5678))
# 等待调试器连接 
debugpy.wait_for_client()

高级功能

随着开发的深入,你可能需要一些高级功能来处理复杂的调试场景。

远程调试

debugpy 支持远程调试,可以通过设置监听地址来允许远程设备连接调试会话:

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

多进程调试

你可以使用 debugpy 调试多进程应用程序。通过相关配置,调试器能够连接到子进程并进行调试。

实践

使用 debugpy 进行调试其实相当简单,以下是一项小测试:

在你的项目目录下创建一个新的 Python 脚本,比如 buggy.py,在里面写一些故意制造 bug 的代码。

然后尝试使用下面命令启动 debugpy:

python -m debugpy --listen localhost:5678 --wait-for-client buggy.py

之后你可以在 VS Code 中启动调试会话,并连接到这个进程。

尝试设置断点,逐步执行代码,查看变量,并享受无缝调试体验。

总结

在现代软件开发过程中,调试是不可或缺的一部分。

而像 debugpy 这样的工具,使得这一过程变得更加高效和愉快。

本文为您介绍了 debugpy 的基础知识、安装方法以及一些核心功能,期望能帮助您在未来的开发旅程中避免阻碍,并解锁更高效的调试技能!


相关文章
服务熔断是指什么?...
中国新一代对地观测系统“透视地球”开始研...
Pointer events 指针事件...
这款轻量级 Java 表达式引擎,真不错...