marimo,Pythonnotebook的未来

科技继续进击 2024-05-24 21:40:36

你好,我是坚持分享干货的 EarlGrey,翻译出版过《Python编程无师自通》、《Python并行计算手册》等技术书籍。

如果我的分享对你有帮助,请关注我,一起向上进击。

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 marimomarimo 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 -

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

推荐阅读 点击标题可跳转

1、Python 项目工程化最佳实践

2、Python 可以比 C 还要快!

3、streamlit,一个超强的 Python 库

4、豆瓣8.9分的C++经典之作,免费送!

5、Python 3.12 版本有什么变化?

最近我开了一家淘宝店,名字叫【打破壁垒】,主打程序开发相关付费素材、工具的共享类商品,帮助大家降低试错和使用成本。欢迎大家关注。

回复关键词「 pybook03」,领取进击的Grey与小伙伴一起翻译的《Think Python 2e》电子版回复关键词「书单02」,领取进击的Grey整理的 10 本 Python 入门书的电子版

告诉你更多细节干货

欢迎围观我的朋友圈

👆每天更新所想所悟

0 阅读:0

科技继续进击

简介:感谢大家的关注