python调试工具Birdseye的使用教程

作者:Ckend 时间:2023-08-22 19:18:48 

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

python调试工具Birdseye的使用教程

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


pip install birdseye

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

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

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

python调试工具Birdseye的使用教程

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

python调试工具Birdseye的使用教程

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

python调试工具Birdseye的使用教程

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

python调试工具Birdseye的使用教程

1.快速上手

首先,使用 pip 安装 birdseye :


pip install birdseye

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


from birdseye import eye

@eye
def foo():

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


python -m birdseye

python调试工具Birdseye的使用教程

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

python调试工具Birdseye的使用教程

2.在Pycharm中集成调试

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

python调试工具Birdseye的使用教程

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

python调试工具Birdseye的使用教程

python调试工具Birdseye的使用教程

python调试工具Birdseye的使用教程

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

3.在VSCode中集成调试

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

python调试工具Birdseye的使用教程

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

python调试工具Birdseye的使用教程

python调试工具Birdseye的使用教程

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

python调试工具Birdseye的使用教程

4.美中不足

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

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

python调试工具Birdseye的使用教程

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

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

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

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

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

来源:https://mp.weixin.qq.com/s/thYPCkBio9HRq8KzdG3Ymg

标签:python,调试工具
0
投稿

猜你喜欢

  • python简单实现最大似然估计&scipy库的使用详解

    2022-11-03 23:45:01
  • 利用Python连接Oracle数据库的基本操作指南

    2024-01-20 05:10:30
  • 文字链接,怎么办?

    2008-08-04 13:18:00
  • 几个javascript特效代码

    2010-04-23 20:39:00
  • Python 读写 Matlab Mat 格式数据的操作

    2023-08-23 01:21:12
  • 简单实现Standby SQL Server 数据库的方法

    2009-10-23 09:26:00
  • 使用Python对Dicom文件进行读取与写入的实现

    2022-05-30 12:18:27
  • Hadoop分布式集群的搭建的方法步骤

    2022-06-08 06:02:42
  • 如何自己制作验证码的head.fix和body.fix文件

    2009-06-01 12:50:00
  • python数据结构之搜索讲解

    2022-12-31 08:09:02
  • 配置SQL Server文件组对应不同的RAID系统

    2009-01-04 14:31:00
  • python学习之matplotlib绘制散点图实例

    2021-02-22 21:28:22
  • Python遗传算法Geatpy工具箱使用介绍

    2021-11-02 02:21:16
  • sql server2005实现数据库读写分离介绍

    2024-01-13 20:46:55
  • 朴素贝叶斯分类算法原理与Python实现与使用方法案例

    2022-03-11 10:59:04
  • 正则表达式30分钟入门教程

    2007-08-27 10:38:00
  • python实现生命游戏的示例代码(Game of Life)

    2023-11-02 21:33:35
  • python中字符串的操作方法大全

    2023-10-01 17:47:15
  • python中的property及属性与特性之间的优先权

    2023-02-03 02:36:12
  • python基于windows平台锁定键盘输入的方法

    2021-01-03 07:46:03
  • asp之家 网络编程 m.aspxhome.com