分享

marimo,Python notebook 的未来

 进击的Grey 2024-05-24 发布于广东

marimo,号称是下一代 Jupyter Notebook,是 Python notebook 的未来。

实际体验完后,初步感觉确实还是不错的,非常有潜力。项目大概 9 个月前在 Github 上发布,目前收获了 4k 星标左右。

本文将快速和大家介绍一些它的一些主要特色和使用体验。

marimo 是什么?

根据官网介绍,marimo 是响应式的 Python notebook,具有可重现性、git 友好性,并可作为脚本或应用程序部署。它解决了传统 notebook 如 Jupyter 中隐藏状态(hidden state)的挑战, 该问题可能导致不可预料的结果并阻碍可复用性。

marimo 的开发者曾在博客里写道:

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

主要特性

1. 输出自动更新

运行一个单元格后,marimo 就会自动运行受影响的单元格,从而消除了管理笔记本状态这一容易出错的繁琐工作。

marimo 的响应式 UI(如数据帧图形 GUI 和绘图)让数据处理工作变得更加快速、直观,令人耳目一新。

2. Python 优先的设计

marimo notebook 是纯 Python 格式,存储为 .py 文件。

可使用 git 进行版本控制,以 Python 脚本的形式运行,支持使用自己喜欢的工具进行校验或格式化。

3. 默认可复现

你总能复现合作者的成果。notebook 以确定的顺序执行,没有隐藏状态。如果删除一个单元格,marimo 就会删除其变量,同时更新受影响的单元格。

4. 注重开发者体验

marimo 编辑器支持 GitHub Copilot、自动补全、悬停提示、vim 键绑定、代码格式化、调试面板和大量热键。

5. 非常便于协作

由于 notebook 以.py 文件的形式存储,非常便利于通过 git 进行写作,此外,marimo 也支持将 notebook 作为只读的 web app 部署到线上。

如何使用

首先,通过 pip 安装:

pip install marimo  # or conda install -c conda-forge marimo
marimo tutorial intro

也可以通过官网提供的线上 playground 直接体验:https://marimo.app/。

下面是一些常用场景和对应命令:

创建或编辑笔记本

marimo edit

以 web app 形式运行 notebook,隐藏 Python 代码且置为不可编辑:

marimo run your_notebook.py

在命令行中以脚本形式执行笔记本:

python your_notebook.py

通过 CLI 自动将 Jupyter notebook 转换为 marimo notebook:

marimo convert your_notebook.ipynb > your_notebook.py

小结

本文中,我们介绍了一款全新的 Python notebook,marimo,详细说明了它的主要特性和使用方式。作为 Jupyter 的替代方案,个人认为是非常潜力的。项目诞生还不到一年,使用人数目前可能还不多,但是还是非常建议大家尝试尝试。

- EOF -

文章已经看到这了,别忘了在右下角点个“赞”和“在看”鼓励哦~

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多