推荐个类似 Jupyter 的笔记本 - marimo

Marimo, 不是马里奥, 是 球藻

官方资料见下面:


本地 python 环境下最简单的运行方式:

pip install marimo

# 安装后查看它的简要教程
marimo tutorial intro

# 新建一个notebook 默认在 http://127.0.0.1:2718/
marimo edit luigli.py

特点:

1 响应式 (Reactive) 更新: 变量更改后, 自动执行所有受其影响的后续单元格

  • 看着眼熟呀, 感觉像是 useState v-model
  • 但列表 .append() 不能驱动响应式更新, 例如:

2 无隐藏状态

  • 官方介绍: 像 Jupyter 这样的传统笔记本具有隐藏状态,运行单元格可能会更改全局变量的值,但这些更改不会传播到使用它们的单元格。更糟糕是,删除单元格会从可见代码中删除全局变量,但不会从程序内存中删除全局变量,这是 bug 的常见来源

3 界面和侧栏功能符合 UI 潮流, 还直接集成了 GPT

4 可以切换 cell 模式 (编写) 或 app 模式

  • app 模式里, 有个支持拖放组件的 Grid layout
    • 网格布局能拖动排版, 就比手写布局快多了, 适合发简单小应用给朋友

5 文件存为 .py 格式

  • 这比 jupyter 的 .ipynb (.json) 格式更方便版本控制
  • 似乎并不存储 cell 执行结果, 可能主要用于轻量级计算场合
  • 官方支持导入 jupyter notebook

6 可部署到浏览器运行


感觉还挺有意思的, 大家感兴趣可以试试