marimo 初体验 能替代jupyter streamlit么?
Marimo 是最近观察到的一款响应式 Python 笔记本,被誉为“面向未来的笔记本”,旨在替代传统的 Jupyter 和 Streamlit。初次试用时,我被其简洁的启动方式、美观的界面和易于分享的特点深深吸引。Marimo 实现了所见即所得的效果,极大地提升了用户体验。然而,作为一个相对较新的工具,它在使用过程中也暴露出了一些问题。本文将总结我的近期体验,并分享一些使用心得。未来,我将持续关注 Marimo 的发展,期待它在数据分析和可视化领域的更多创新。
官方介绍
Marimo 是一款响应式 Python 笔记本:运行单元格可与 UI 元素交互,marimo 会自动更新依赖于它的单元格,从而保持代码和输出的一致性。marimo 笔记本以纯 Python 格式存储,可作为脚本执行,也可作为应用程序部署。
Marimo 优势
- 🚀 功能齐全: 替代 jupyter、streamlit、jupytext、ipywidgets、papermill 等更多工具
- ⚡️ 响应式: 运行一个单元格,marimo 会响应式地运行所有依赖单元格
- 🖐️ 交互性: 绑定滑块、表格、图表等 UI 元素 到 Python
- 🔬 可复现: 无隐藏状态,确定性执行
- 🏃♂️ 可执行: 作为 Python 脚本执行,通过命令行调整参数
- 🛜 可分享: 部署为交互式 Web 应用 或幻灯片,通过 WASM 在浏览器中运行
- 🛢️ 为数据设计: 使用 SQL 查询数据框和数据库,过滤和搜索数据框
- 🐍 支持 Git: 笔记本以 .py 文件格式存储
- ⌨️ 现代编辑器: GitHub Copilot、AI 助手、vim 快捷键、变量浏览器,和更多功能
操作记录
安装
1 |
|
新建或编辑文件
使用以下命令创建或编辑笔记本
1 |
|
运行应用
将笔记本作为网络应用程序运行,隐藏 Python 代码,且不可编辑:
1 |
|
作为脚本执行 在命令行中将笔记本作为脚本执行:
1 |
|
自动转换已有的 Jupyter 笔记本 通过命令行将 Jupyter 笔记本自动转换为 marimo 格式的笔记本
1 |
|
学习方法
列出所有的可用教程:
1 |
|
使用对应的语句学习基本语法,比如ui
1 |
|
在浏览器中很方便的看到各类 ui 的写法,比如数字输入,单选、多选、文件录入、时间输入等。相当于 streamlit 的控件,简洁的样式可以满足基本的需求。
用同样的方法,可以快速上手数据结构,绘图等。
数据透视图
使用 ui. data_explorer () 方法快速搭建数据透视图。
1 |
|
个人体验小结
marimo
是一个正处于快速发展阶段的库,尽管目前在成熟度上还不及 Jupyter Notebook 和 Streamlit,但在用户体验和功能创新方面展现出了巨大的潜力。
marimo
在处理大数据量时可能会显得较为缓慢,甚至在某些情况下会卡顿。此外,marimo
在运行一个单元格时会自动运行所有依赖单元格,这意味着代码中的任何错误都会导致整个项目无法正常启动,这在命令行中尤为明显,同时也不便于在浏览器中进行即时修改。另一个需要注意的点是,marimo
对变量命名有严格的要求,不允许重复名称,这增加了代码编写的约束。
除了上面发现的问题,优点也比较多,美观,易上手,相当于结合了 streamlit 展示的 jupyter notebook,本次体验并不深入,marimo 还可解接入 openai ,googleai 等提示,而且可以使用 SQL 语句查询表格文件和 df 文件,可玩性还是很强,未来可期吧,后面会持续关注。
相关网站
BY
纯个人经验,如有帮助,请收藏点赞,如需转载,请注明出处。
微信公众号:环境猫 er
CSDN : 细节处有神明
个人博客: https://maoyu92.github.io/