专栏首页进击的CoderBirdseye - 极其强大的 Python 调试工具

Birdseye - 极其强大的 Python 调试工具

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

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

pip install birdseye

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

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

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

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

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

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

1.快速上手

首先,使用 pip 安装 birdseye :

pip install birdseye

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

from birdseye import eye

@eye
def foo():

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

python -m birdseye

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

2.在Pycharm中集成调试

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

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

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

3.在VSCode中集成调试

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

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

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

4.美中不足

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

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

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

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

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

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

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

End

本文分享自微信公众号 - 进击的Coder(FightingCoder)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-05-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 一个快速方便的图形化 Python 调试器 —— birdseye | Github 项目推荐

    Birdseye 是一个简单快速的 Python 调试器,它可以在函数的调用中记录表达式的值,并且在退出函数后轻松查看。例如: ? 它不是通过逐行浏览来查看表达...

    AI研习社
  • 这里有10个优质Python开源项目,来帮你学好Python

    导读:在过去的一个月中,我们对近250个Python开源项目进行了排名,选出了前十。

    IT派
  • 这里有10个优质Python开源项目,来帮你学好Python

    导读:在过去的一个月中,我们对近250个Python开源项目进行了排名,选出了前十。

    华章科技
  • 最新的10个优质Python开源项目

    我们比较了在此期间有新的发布或是重大发布的项目。Mybridge AI基于多种因素对项目进行排名,以衡量其在专业人员眼中的质量。

    IT派
  • 我们准备了10个优质Python开源项目,来帮你学好Python

    我们比较了在此期间有新的发布或是重大发布的项目。Mybridge AI基于多种因素对项目进行排名,以衡量其在专业人员眼中的质量。

    CDA数据分析师
  • 最新的10个优质Python开源项目

    来源:Python程序员 ID:pythonbuluo 在过去的一个月中,我们对近250个Python开源项目进行了排名,选出了前十。 我们比较了在此期间有...

    小小科
  • 【GitHub】34 个超牛逼的Python开源框架

    我们从近10000个python开源框架中评价整理的34个最为好用的开源框架,它们细分可以分为Python Toolkit、Web、Terminal、Code ...

    Python进击者
  • 整理了 34 个被吹爆了的Python开源框架

    我们从近10000个python开源框架中评价整理的34个最为好用的开源框架,它们细分可以分为Python Toolkit、Web、Terminal、Code ...

    咸鱼学Python
  • 推荐一款强大的 Android OpenGL ES 调试工具

    GAPID (Graphics API Debugger)是 Google 的一款开源且跨平台的图形开发调试工具,用于记录和检查应用程序对图形驱动程序的调用,支...

    字节流动
  • Pyecharts丨极其强大的Python数据可视化模块

    昨天发了一篇关于【Matplotlib】的数据可视化文章,有一位小伙伴说可以直接使用Pyecharts,然后我就看了,发现确实,很强大,效果图也是非常的好看

    IT派
  • bmon:一个强大的网络带宽监视和调试工具

    bmon 是类 Unix 系统中一个基于文本,简单但非常强大的 网络监视和调试工具,它能抓取网络相关统计信息并把它们以用户友好的格式展现出来。它是一个可靠高效的...

    Debian中国
  • 属于极客的k8s管理工具fist, 强大的webterminal

    fist是sealyun开发的精致的k8s管理工具,所有功能切入要害,而不追求多与重,接下来的介绍我相信有节操的k8s管理员一定会喜欢它。

    sealyun
  • Python处理excel的强大工具-openpyxl

    首先,Python处理excel的第三方库有:xlrd,xlwt,openpyxl等。

    吾非同
  • 一个牛逼的 Python 调试工具

    一般情况下,在编写 Python 代码时,如果想弄清楚为什么 Python 代码没有按照预期执行的原因,比如你想知道哪些是正在运行,哪些没有运行,以及局部变量的...

    昱良
  • 一个牛逼的 Python 调试工具PySnooper

    PySnooper 使用起来十分简单,开发者可以在任何庞大的代码库中使用它,而无需进行任何设置。你只需添加装饰器,并为日志输出地址指定路径,方法是将其路径指定为...

    双面人
  • 适合 Python 入门的 8 款强大工具!

    Python是一种开源的编程语言,可用于Web编程、数据科学、人工智能以及许多科学应用。学习Python可以让程序员专注于解决问题,而不是语法。由于Python...

    Python知识大全
  • 适合 Python 入门的 8 款强大工具!

    Python是一种开源的编程语言,可用于Web编程、数据科学、人工智能以及许多科学应用。学习Python可以让程序员专注于解决问题,而不是语法。由于Python...

    龙哥
  • 强大的网页性能测试工具--Speed Tracer

    http://wenku.baidu.com/view/565afd1cc281e53a5802ff08.html

    meteoric
  • 8 款强大工具适合 Python 入门的你

    Python是一种开源的编程语言,可用于Web编程、数据科学、人工智能以及许多科学应用。学习Python可以让程序员专注于解决问题,而不是语法。由于Python...

    小小科

扫码关注云+社区

领取腾讯云代金券