Marimo:Python开源反应式笔记本notebook


marimo 是 Python 的反应式笔记本notebook 。它允许您快速试验数据和模型,对笔记本的正确性充满信心地进行编码,并将笔记本生产为管道或交互式 Web 应用程序。

  • 在 marimo 中,笔记本的代码、输出和程序状态始终一致。
  • 运行一个单元格,marimo 会通过自动运行引用其声明变量的单元格来做出反应。
  • 删除一个单元格,marimo 就会从程序内存中清除其变量,从而消除隐藏状态。
  • 我们的反应式运行时基于静态分析,因此它是高性能的。
  • 如果您担心意外触发昂贵的计算,您可以禁用特定单元格的自动运行。

marimo 附带了 UI 元素,例如滑块、数据框转换器和与 Python 自动同步的交互式绘图 。与元素交互,使用该元素的单元格会自动以其最新值重新运行。反应性使这些 UI 元素比 Jupyter 的 ipywidgets 更有用且更符合人体工程学。

每个 marimo 笔记本都可以作为脚本从命令行运行,单元格以拓扑排序的顺序执行,或者使用 marimo CLI 作为交互式 Web 应用程序。

我们是一个只有两名开发人员的团队。我们选择开发 marimo 是因为我们相信 Python 社区应该有一个更好的编程环境来进行研究和交流;尝试代码并分享;学习计算科学并教授它。我们已经看到很多研究都是在 Jupyter 笔记本上开始的(我自己的大部分都是这样),但都未能重现;许多有前景的原型从未实现;以及许多未能吸引学生的教程。

marimo 的开发得到了科学家和工程师的密切关注,并受到许多工具的启发,包括 Pluto.jl 和 Streamlit。我们最近将其开源,因为我们认为它已经准备好供更广泛的使用。

网友评论:

  • 我是 Jupyter 笔记本和 Observable 笔记本 ( https://observablehq.com/ ) 的大用户,当我使用 Jupyter 时,我最怀念 Observable 的是缺乏细胞反应性。你已经解决得非常好!