当前位置 : 主页 > 编程语言 > python >

Birdseye:一款极其强大的 Python 调试工具

来源:互联网 收集:自由互联 发布时间:2022-06-18
Birdseye是一个Python调试器,它在函数调用中记录表达式的值,并让你在函数​退出​后轻松查看它们,例如: 无论你如何运行或编辑代码,都可以使用Birdseye。只需要你安装好依赖:


Birdseye是一个Python调试器,它在函数调用中记录表达式的值,并让你在函数​退出​后轻松查看它们,例如:

Birdseye:一款极其强大的 Python 调试工具_数据可视化

无论你如何运行或编辑代码,都可以使用Birdseye。只需要你安装好依赖:

pip install birdseye

并在代码函数上方添加 ​​​@eye​​​ 装饰器(如上动图所示),即可根据需要运行函数,并在浏览器中查看结果。

它还可以与一些常用工具集成在一起,如 Pycharm 和 Vscode,以提供更流畅的体验,后续我们会介绍如何将其与这些工具结合使用。

它不仅仅能够单步执行,还能在​循环迭代中来回移动​,并查看所选表达式的值如何变化:

Birdseye:一款极其强大的 Python 调试工具_python_02

通过 birdseye 你能很容易地知道哪些表达式引发了异常:

Birdseye:一款极其强大的 Python 调试工具_函数调用_03

你也能够展开具体的数据结构和对象以查看其内容:

Birdseye:一款极其强大的 Python 调试工具_数据可视化_04

调用会按功能组织(文件组织)并进行时间排序进行显示,让你一目了然地看到发生了什么:

Birdseye:一款极其强大的 Python 调试工具_数据可视化_05

​1.快速上手​

首先,使用 pip 安装 birdseye :

pip install birdseye

然后,对需要进行调试的函数使用eye装饰器:

from birdseye import eye

@eye
def foo():

在你调用该函数完成后,在终端运行命令打开Birdseye的Web服务:

python -m birdseye

Birdseye:一款极其强大的 Python 调试工具_数据分析_06

在浏览器打开 http://localhost:7777 就能看到需要调试的函数执行流程了。点击下图的按钮即可跳到最新的函数调用。

Birdseye:一款极其强大的 Python 调试工具_搜索_07

​2.在Pycharm中集成调试​

在 Pycharm 的 Settings 中,点击 Plugins 插件市场搜索 ​birdseye​ 点击 install 安装。

Birdseye:一款极其强大的 Python 调试工具_函数调用_08

安装完成后重启Pycharm,就可以在 Pycharm 中使用 birdseye了:

Birdseye:一款极其强大的 Python 调试工具_数据可视化_09

Birdseye:一款极其强大的 Python 调试工具_数据可视化_10

Birdseye:一款极其强大的 Python 调试工具_搜索_11

默认情况下,该插件还可以为你自动运行Birdseye服务器,因此就不需要输入 python -m birdseye 那行命令了。

​3.在VSCode中集成调试​_

在VSCode中继承调试Birdseye也非常方便,点击左侧的扩展商店,在弹出框中输入搜索 birdseye,并点击 install 安装:

Birdseye:一款极其强大的 Python 调试工具_数据可视化_12

安装完成后,点击 F1 输入Birdseye,就能显示调试界面:

Birdseye:一款极其强大的 Python 调试工具_数据可视化_13

Birdseye:一款极其强大的 Python 调试工具_搜索_14

如果无法正常显示右侧调试界面,并提示未安装birdseye,但实际上你已经安装成功了,这一般是路径错误导致的,请在扩展设置中手动更改python路径为你安装了Birdseye的Python。

Birdseye:一款极其强大的 Python 调试工具_数据可视化_15

​4.美中不足​

Birdseye 是一个非常强大的调试工具,但我认为这还是有缺点可以改善的:

​1.为了防止堆栈过大,每个迭代它最多只保留6个(前三、末三)元素:​

Birdseye:一款极其强大的 Python 调试工具_数据分析_16

因此如果你想看一些特殊元素值的执行情况,它可能不会如你所愿。

不过,不需要担心某些分支你调试不到,因为 birdseye 有个保险机制:​如果一个表达式仅在某种特定情况下会被执行,那么执行时的元素也会被加入到可调试元素中​。

​2.由于需要记录堆栈,程序会大大减慢速度,因此它绝对不适合上到生产环境。​

​3.每个函数调用,Birdseye 都需要收集许多数据,对于某些极其复杂的函数调用,可能会引发内存问题。​

如果你不担心这三个缺点,而且希望能快速方便地看到函数中不同分支的执行情况,那么Birdseye就是你的不二之选。

技术交流

欢迎载、收藏、有所收获点赞支持一下!

Birdseye:一款极其强大的 Python 调试工具_python_17

目前开通了技术交流群,群友已超过​2000人​,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友

  • 方式①、发送如下图片至微信,长按识别,后台回复:加群;
  • 方式③、微信搜索公众号:​Python学习与数据挖掘​,后台回复:加群

Birdseye:一款极其强大的 Python 调试工具_数据分析_18



网友评论