Marimo:下一代Python编程环境,颠覆传统Jupyter笔记本,自动化执行所有依赖代码块,告别繁琐手动操作

Marimo 是一个颠覆传统笔记本的全新编程环境,它以其反应式交互式可执行可共享等特性,为开发者们带来前所未有的编程体验。Marimo 确保您的笔记本代码、输出和程序状态始终保持一致。它解决了传统笔记本(如 Jupyter)的许多问题。

反应式编程环境

Marimo的核心在于反应式编程,这意味着当你修改代码或与UI元素交互时,Marimo 会自动识别依赖关系,并只执行必要的代码块。这种智能机制可以有效避免传统笔记本中手动执行代码的繁琐,并确保代码、输出和程序状态始终保持一致。

以下列举了Marimo反应式编程带来的优势:

  • 自动运行依赖代码: 更改一个代码块,Marimo 会自动执行依赖它的所有代码块,无需手动执行,节省时间,减少错误。而Jupyter需要手动执行所有依赖代码块。

  • 消除隐藏状态: 删除代码块时,Marimo 会自动清除该代码块所关联的变量,确保程序状态清晰,避免潜在的错误。

  • 惰性执行配置: Marimo 支持将 runtime 配置为惰性模式,只标记需要重新执行的代码块,不会自动执行昂贵的代码块,从而保证程序状态的同时避免不必要的计算。

交互式用户界面

Marimo 允许你将 UI 元素(如滑块、下拉菜单、数据帧转换器等)绑定到 Python 代码,无需编写任何回调函数。当用户与 UI 元素交互时,Marimo 会自动重新执行关联的代码块,并实时更新输出结果。

这种交互式编程体验带来以下优势:

  • 直观的交互方式: 用户可以通过直观的 UI 元素控制代码执行,更易理解程序逻辑。

  • 可视化数据探索: 通过 UI 元素动态调整参数,实时观察数据变化,更方便地进行数据探索和分析。

  • 增强用户参与: 用户可以更直接地参与代码执行过程,提升用户体验。

可执行和可共享的笔记本

Marimo 将笔记本文件存储为纯 Python 代码,使其既可以作为脚本执行,也可以部署为交互式 Web 应用。这意味着你可以在本地开发和测试,然后将你的笔记本分享给他人,让他们在任何地方都可以体验你的交互式代码。

以下列举了Marimo的可执行性和可共享性带来的优势:

  • 脚本执行: 你可以直接使用 Python 运行 Marimo 笔记本,方便进行自动化任务和批量处理。

  • Web 应用部署: 你可以将 Marimo 笔记本部署为 Web 应用,方便用户在线访问和交互。

  • 代码可移植性: Marimo 笔记本可以轻松移植到不同的平台,确保代码的可复用性。

  • 数据驱动: Marimo 内置 SQL 支持,可以方便地处理各种数据源,例如数据帧、数据库、CSV 文件、Google 表格等等。

  • Git 友好: Marimo 笔记本以 .py 文件的形式存储,方便使用 Git 进行版本控制和协作。

  • 丰富的工具和功能: Marimo 内置了许多功能强大的工具,例如 GitHub Copilot、Ruff 代码格式化、HTML 导出、代码自动补全、VS Code 扩展、交互式数据帧查看器等等。

快速入门

安装 Marimo:

创建笔记本:

运行应用:

作为脚本执行:

从 Jupyter Notebook 转换:

探索教程:

总结

Marimo 是一款功能强大、易于使用的反应式编程环境,它将传统笔记本的局限性彻底打破,为开发者们提供了全新的编程体验。无论你是数据科学家、机器学习工程师还是软件开发人员,Marimo 都可以帮助你更高效、更便捷地进行代码创作、数据分析和应用开发。

项目地址:https://github.com/marimo-team/marimo

相关推荐
微刻时光4 分钟前
影刀RPA实战:自动化批量生成条形码完整指南
运维·python·低代码·机器人·自动化·rpa
青龙摄影15 分钟前
【自动化】BB自动化获取视频和音频地址并下载
java·python
微刻时光16 分钟前
影刀RPA实战:自动化同步商品库存至各大电商平台(二)
经验分享·python·低代码·机器人·开源·自动化·rpa
L Jiawen43 分钟前
【Python · Pytorch】配置cuda环境 & cuDNN库
开发语言·pytorch·python
大厂小码哥1 小时前
比 GPT-4 便宜 187 倍的Mistral 7B (非广告)
python
python1561 小时前
Python网络爬虫:如何高效获取网络数据
开发语言·爬虫·python
技术猿188702783511 小时前
阿里巴巴1688中国站商品搜索API返回值深度解析与实战应用
开发语言·python
虾小眠05261 小时前
python 100个算法
python·算法
冯宝宝^1 小时前
“鸿儒”——AIGC团队知识管理工作台
python·aigc
闲人编程1 小时前
Python实现人工免疫系统算法
开发语言·python·算法·优化·ais·人工免疫