返回目录
开源项目开发者工具类新手

Cyberbrain:重新定义 Python 调试的运行时变量追踪工具

Cyberbrain(电子脑)是 laike9m 开发的 Python 调试工具,由一个 Python 库和编辑器/IDE 集成组成,目前支持 VS Code 与 Gitpod。它通过 @trace 装饰器对函数做运行时追踪,回溯变量变更、展示程序执行的每个状态(包括变量值),并帮助开发者有信心地调试循环。

0 次阅读2026/09/15 发布
Cyberbrain:重新定义 Python 调试的运行时变量追踪工具 来源图片

社区作者 · zZz

它解决什么问题

Cyberbrain (电子脑) 的目标是让程序员摆脱繁琐的调试工作。它提供三项核心能力:

  1. 回溯变量变更(Backtrace variable changes);
  1. 查看程序执行过程中的每一个状态,包括变量的值;

作者的口号是:不必花几个小时单步跟踪程序,让 Cyberbrain 告诉你发生了什么。项目在 PyCascades 2021 上做过分享。

  1. 更有信心地调试循环。

构成与支持范围:Cyberbrain 由一个 Python 库和多种编辑器/IDE 集成组成,当前支持 VS Code 和 Gitpod(配图 2 为 Gitpod 试用入口按钮),官方表示有计划扩展更多编辑器支持。

工作方式:Cyberbrain 不改变你的工作流——你照常用 VS Code 或命令行运行程序,它会打开一个新面板来可视化程序的执行过程(配图 3 为该工作流的演示动图,配图 1 为教程配图)。

使用注意事项(来源明确列出):

  • Cyberbrain 可能与其他调试器冲突。如果设置了断点并使用 VS Code 调试器,Cyberbrain 可能无法正常工作;一般情况下建议使用 “Run Without Debugging”(如动图中所示)。
  • 如果打开了多个 VS Code 窗口,trace 图始终创建在第一个窗口中,该问题由 issue #72 跟踪。
  • 当存在多个装饰器时,应把 @trace 放在最内层。

项目状态与路线图(2020.11 更新):Cyberbrain 很新且处于活跃开发中,出现 bug 是预期之内的,遇到问题可以提 issue。当前阶段不应在生产环境使用 Cyberbrain,等 1.0 就绪后才适合用于生产。计划中的主要版本功能为:1.0 代码与 trace 交互(#7)及 API 规范;2.0 多帧追踪;3.0 async 支持与远程调试;4.0 细粒度符号追踪;5.0 多线程支持。

与其他工具的对比:

  • PySnooper:目标相同(减少调试工作量),但本质区别在于 Cyberbrain 会追踪并展示每个变量变更的来源,而 PySnooper 只做日志记录。
  • Debug Visualizer:目标不同,Debug Visualizer 可视化数据结构,Cyberbrain 可视化程序执行过程(同时也可查看变量值)。
可复制命令
Python Tutor:面向教育用途

,不能用来调试你自己的程序。

  • 静态分析:Cyberbrain 不是静态分析,而是运行时追踪;静态分析无法提供调试所需的足够信息。

社区与贡献:可通过 GitHub Discussions 做一般讨论、Discord 做更即时的交流、Twitter @PyCyberbrain 获取公告。贡献者可参考 development guide,项目遵循 all-contributors 规范,欢迎任何形式的贡献。

名称来源:项目名源自《攻壳机动队》(Ghost in the Shell) 中的概念——Cyberization 是把普通大脑与电子元件物理整合,产生被称为 cyberbrain 的增强器官。

— 本文由 AI 根据公开来源辅助整理,命令、版本与许可证请在使用前到原始页面复核。

安装 / 开始使用

准备环境:需要 Python 环境(用于安装 Python 库)以及 VS Code 或 Gitpod 编辑器/IDE。

第一步:安装 Python 库

命令
pip install cyberbrain

第二步:安装 VS Code 扩展 code --install-extension laike9m.cyberbrain

备选安装渠道:也可以从 PyPI、VS Code marketplace 或 Open VSX 安装;还可以在线试用 Cyberbrain(页面上提供 “Open in Gitpod” 按钮,见配图 2)。

第三步:在代码中使用 @trace 装饰器。假设你想追踪函数 foo,就用 @trace 装饰它: from cyberbrain import trace

As of now, you can only have one @trace decorator in the whole program.

We may change this in version 2.0, see https://github.com/laike9m/Cyberbrain/discussions/73

@trace # Disable tracing with @trace(disabled=True) def foo(): ...

第四步:首次运行。执行方式是保持原有工作流不变——从 VS Code 或命令行运行程序都可以。运行后会自动打开一个新的面板,用于可视化程序的执行过程(见配图 3 演示动图)。

首次运行常见问题:

  1. Cyberbrain 可能与其他调试器冲突。如果设置了断点并使用 VS Code 调试器,Cyberbrain 可能无法正常工作;一般来说应优先使用 “Run Without Debugging”。
  1. 如果打开了多个 VS Code 窗口,trace 图始终会创建在第一个窗口中,该问题由 issue #72 跟踪。
  1. 整个程序中目前只能有一个 @trace 装饰器(2.0 版本可能改变,见 discussions/73);可用 @trace(disabled=True) 关闭追踪。

@app.route("/") @trace def hello_world(): x = [1, 2, 3] return "Hello, World!"

  1. 当存在多个装饰器时,必须把 @trace 放在最内层,例如:

更多功能与限制请阅读官方文档(Read our documentation),当前版本不应在生产环境使用。

来源教程配图

教程配图
配图 1 · 教程配图查看原图
Open in Gitpod
配图 2 · Open in Gitpod查看原图
usage
配图 3 · usage查看原图
教程配图
配图 4 · 教程配图查看原图

适用场景

回溯 Python 程序中每个变量的变更来源
查看程序执行过程中的每一个状态与变量取值
调试循环逻辑
避免长时间手动单步执行
在 VS Code 或 Gitpod 中以可视化面板理解程序运行流程
作为 PySnooper 的替代方案
获得变量变更来源而非仅日志
排查函数内部状态变化与执行路径
辅助定位 bug