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

相关推荐
湫ccc1 小时前
《Python基础》之字符串格式化输出
开发语言·python
mqiqe2 小时前
Python MySQL通过Binlog 获取变更记录 恢复数据
开发语言·python·mysql
AttackingLin2 小时前
2024强网杯--babyheap house of apple2解法
linux·开发语言·python
哭泣的眼泪4082 小时前
解析粗糙度仪在工业制造及材料科学和建筑工程领域的重要性
python·算法·django·virtualenv·pygame
湫ccc3 小时前
《Python基础》之基本数据类型
开发语言·python
drebander4 小时前
使用 Java Stream 优雅实现List 转化为Map<key,Map<key,value>>
java·python·list
威威猫的栗子4 小时前
Python Turtle召唤童年:喜羊羊与灰太狼之懒羊羊绘画
开发语言·python
墨染风华不染尘4 小时前
python之开发笔记
开发语言·笔记·python
Dxy12393102165 小时前
python bmp图片转jpg
python
麦麦大数据5 小时前
Python棉花病虫害图谱系统CNN识别+AI问答知识neo4j vue+flask深度学习神经网络可视化
人工智能·python·深度学习