使用开源可视化工具来理解你的Python代码

开源 开发工具
VizTracer 工具可以可视化并跟踪 Python 代码,让你可以更深入地了解其工作原理。

使用开源可视化工具来理解你的Python代码

VizTracer 工具可以可视化并跟踪 Python 代码,让你可以更深入地了解其工作原理。

随着 Python 项目变得越来越大、越复杂,理解起它来就变得充满挑战性。即使是你自己独自编写了整个项目,也不可能完全知道项目是如何工作的。为了能更好的理解你的代码,调试和分析代码变得至关重要。

VizTracer 是一个这样的工具,它通过跟踪和可视化 Python 代码的执行过程,来帮助你对代码的理解。无需对源代码进行任何更改,VizTracer 即可记录函数的入口 / 出口,函数参数 / 返回值以及任意变量,然后通过 Trace-Viewer 使用直观的谷歌前端界面来显示数据。

下面是一个运行蒙特卡洛树搜索的例子:

 

Monte Carlo tree search visualization

每个函数都在时间线上以堆栈的形式记录和可视化,这样你就可以看到在运行程序时发生了什么。你可以放大查看任意特定点的详细信息:

 

Zooming in on VizTracer visualization

VizTracer 还可以自动记录函数参数和返回值。你可以单击函数条目并查看详细信息:

 

Viewing VizTracer details

或者你可以创建一个全新的信号,并用它来记录变量。例如,这显示了执行梯度下降时的成本值:

 

VizTracer gradient descent

与其他设置复杂的工具相比,VizTracer 使用起来非常简单,并且没有任何依赖关系。你可以从 pip 安装它:

  1. pip install viztracer

你也可以通过输入来跟踪你的程序(<your_script.py> 是你脚本的名称):

  1. viztracer <your_script.py>

VizTracer 将在你的工作目录中生成一个 HTML 报告,你可以在 Chrome 浏览器中打开它。

VizTracer 还提供了其他高级功能,比如过滤器功能,你可以使用它过滤掉不想跟踪的函数,获得更清晰的报告。例如,要仅包含文件中的函数,你需要:

  1. viztracer include_files ./ --run <your_script.py>

记录函数参数和返回值:

  1. viztracer --log_function_args --log_return_value <your_script.py>

记录与某个正则表达式匹配的任意变量:

  1. # log variables starts with a
  2. viztracer --log_var a.* --run &lt;your_script.py&gt;

你可以通过对源代码进行较小的修改来获得其他功能,例如自定义事件来记录数值和对象。

VizTracer 还包括一个虚拟调试器(vdb),它可以调试 VizTracer 的日志文件。可以用 vdb 调试你运行中的代码(与 pdb 非常相似)以便你了解代码流。有用的是,它还支持时间回溯,因为它知道发生的一切。

与一些原型不同,VizTracer 使用纯 C 语言实现其核心,这将极大地减少开销,使其达到类似于 cProfile 的水平。

VizTracer 是开源的,在 Apache 2.0 许可下发布,支持所有常见的操作系统平台(Linux、macOS 和 Windows)。你可以在 GitHub 上了解关于它的更多特性并访问源代码。 

 

责任编辑:庞桂玉 来源: Linux中国
相关推荐

2017-07-04 16:00:16

PythonMatplotlib可视化工具

2017-07-27 09:49:37

Python工具Matplotlib

2020-07-16 15:10:46

工具可视化Python

2019-09-27 09:12:18

开源数据可视化大数据

2020-12-15 09:43:20

Python可视化工具网络应用

2019-10-14 15:51:40

可视化技术微软数据库

2022-10-21 15:47:59

测试工具鸿蒙

2015-12-02 09:44:04

Python视化工具

2020-09-08 13:45:37

Python工具包代码

2019-10-24 13:12:22

开源技术 软件

2016-08-21 15:38:31

大数据可视化工具

2019-06-11 09:35:34

可视化工具图形

2017-07-03 16:44:10

数据库MongoDBNoSQL

2021-03-30 10:10:37

PyTorch可视化工具命令

2022-08-05 08:56:24

Python可视化工具

2019-06-23 15:44:24

Matplotlib可视化图表

2022-04-02 14:50:22

Python工具包数据

2023-03-06 08:03:10

Python可视化工具

2022-11-15 15:14:05

2022-05-07 09:02:27

数据可视化工具库
点赞
收藏

51CTO技术栈公众号