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
pip install marimo 

新建或编辑文件

使用以下命令创建或编辑笔记本

1
2
3
4
5
6
7
8
9
10
11
12
#指定解释器
#conda 解释器
conda activate base

#指定文件目录
cd /d D:\BaiduSyncdisk\pythonprograms\marimo
marimo edit [filename].py
marimo edit new_marimo.py
#运行示例文件
marimo tutorial intro
#更新
pip install --upgrade marimo

运行应用

将笔记本作为网络应用程序运行,隐藏 Python 代码,且不可编辑:

1
2
marimo run new_marimo.py
marimo run pic.py

作为脚本执行 在命令行中将笔记本作为脚本执行:

1
python your_notebook.py

自动转换已有的 Jupyter 笔记本 通过命令行将 Jupyter 笔记本自动转换为 marimo 格式的笔记本

1
2
marimo convert your_notebook.ipynb > your_notebook.py
marimo convert pic.ipynb > pic.py

学习方法

列出所有的可用教程:

1
marimo tutorial --help

使用对应的语句学习基本语法,比如ui

1
marimo tutorial ui

在浏览器中很方便的看到各类 ui 的写法,比如数字输入,单选、多选、文件录入、时间输入等。相当于 streamlit 的控件,简洁的样式可以满足基本的需求。

image.png

用同样的方法,可以快速上手数据结构,绘图等。

数据透视图

使用 ui. data_explorer () 方法快速搭建数据透视图。

1
mo.ui.data_explorer(df)

个人体验小结

marimo 是一个正处于快速发展阶段的库,尽管目前在成熟度上还不及 Jupyter Notebook 和 Streamlit,但在用户体验和功能创新方面展现出了巨大的潜力。

marimo 在处理大数据量时可能会显得较为缓慢,甚至在某些情况下会卡顿。此外,marimo 在运行一个单元格时会自动运行所有依赖单元格,这意味着代码中的任何错误都会导致整个项目无法正常启动,这在命令行中尤为明显,同时也不便于在浏览器中进行即时修改。另一个需要注意的点是,marimo 对变量命名有严格的要求,不允许重复名称,这增加了代码编写的约束。

除了上面发现的问题,优点也比较多,美观,易上手,相当于结合了 streamlit 展示的 jupyter notebook,本次体验并不深入,marimo 还可解接入 openai ,googleai 等提示,而且可以使用 SQL 语句查询表格文件和 df 文件,可玩性还是很强,未来可期吧,后面会持续关注。

相关网站

marimo

BY

纯个人经验,如有帮助,请收藏点赞,如需转载,请注明出处。
微信公众号:环境猫 er
CSDN : 细节处有神明
个人博客: https://maoyu92.github.io/


marimo 初体验 能替代jupyter streamlit么?
https://maoyu92.github.io/2024/11/06/04 经验分享/marimo 初体验 能替代jupyter streamlit么?/
作者
陈文茂
发布于
2024年11月6日
许可协议