close
Skip to content

AKS1st/marimo

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5,845 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Image

这是一款响应式的Python笔记本,具有优秀的可复现性,原生支持Git,并可作为脚本或应用程序部署。

用户手册 · Discord 社区 · 示例 · 展示廊 · YouTube

English | 繁體中文 | 简体中文 | 日本語 | Español

Image Image discord Pepy Total Downloads Conda Downloads Image

Marimo 是一款响应式 Python 笔记本:运行单元格可与 UI 元素交互,marimo 会自动更新依赖于它的单元格(或将其标记为过时单元格),从而保持代码和输出的一致性。marimo 笔记本以纯 Python 格式存储,可作为脚本执行,也可作为应用程序部署。

为什么选择 marimo

pip install marimo && marimo tutorial intro

在我们的在线体验平台试用marimo,完全在浏览器中运行!

跳转到快速入门了解我们的命令行工具。

响应式编程环境

Marimo 确保了您的代码、输出和程序的状态始的一致性,解决了与 Jupyter 等传统笔记本相关的许多问题

独有的响应式设计 运行一个单元格,marimo 就会自动运行引用其变量的单元格,从而避免了手动重新运行单元格这一容易出错的工作。删除单元格,marimo 会从程序内存中删除其变量,消除隐藏状态。

Image

兼容计算密集型笔记本。marimo允许您将运行时配置为延迟模式,将受影响的单元格标记为过时而不是自动运行它们。这既能保证程序状态的完整性,又能防止意外执行计算密集型单元格。

同步的UI元素。与UI元素滑块下拉菜单数据框转换器聊天界面交互时,使用它们的单元格会自动以最新值重新运行。

Image

交互式数据框分页浏览、搜索、过滤和排序数百万行数据,极速运行,无需编写代码。

Image

高效运行时。marimo通过静态分析代码,只运行需要运行的单元格。

动态Markdown和SQL。使用Markdown创建依赖Python数据的动态文档。或者构建依赖Python值的SQL查询,并针对数据框、数据库、CSV、Google Sheets或其他数据源执行,使用我们内置的SQL引擎将结果作为Python数据框返回。

Image

即使使用了Markdown或SQL,您的笔记本仍然是纯Python代码。

确定性执行顺序。笔记本按照基于变量引用而非单元格页面位置的确定性顺序执行。您可以根据想要讲述的故事组织笔记本。

内置包管理。marimo内置支持所有主要的包管理器,允许您在导入时安装包。marimo甚至可以序列化包依赖到笔记本文件中,并在隔离的venv沙箱中自动安装它们。

功能齐全。marimo集成了GitHub Copilot、AI助手、Ruff代码格式化、HTML导出、快速代码补全、VS Code扩展、交互式数据框查看器和更多便捷功能。

快速起步

安装 在终端运行以下代码:

pip install marimo  # or conda install -c conda-forge marimo
marimo tutorial intro

要安装包含额外依赖项的版本(启用SQL单元格、AI补全等功能),运行:

pip install marimo[recommended]

创建新的笔记本

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

marimo edit

运行应用 将笔记本作为Web应用运行,隐藏并锁定Python代码:

marimo run your_notebook.py

Image

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

python your_notebook.py

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

marimo convert your_notebook.ipynb > your_notebook.py

对此,我们也有在线工具可供使用。

教程 列出所有的可用教程:

marimo tutorial --help

如果你有一些问题?

请参阅我们文档中的FAQ部分。

更多信息

Marimo 很容易上手,为高级用户提供了很大的空间。 例如,这是一个用 marimo 制作的 embedding 可视化工具 (示例视频):

Image

查看我们的文档使用示例展示廊了解更多。

Image Image Image Image
教程 输入控件 绘图 布局
Image Image Image Image

贡献

我们感谢所有人的贡献! 这是为所有人设计的工具,我们真挚的欢迎任何人的任何意见! 请参阅CONTRIBUTING.md 获取更多信息,了解如何参与到这个项目中来。

有问题?请在Discord上联系我们

社区

我们也正在建设 marimo 社区,来和我们一起玩吧!

愿景 ✨

marimo 是对 Python 笔记本的重塑,它是一个可复制、可交互、可共享的 Python 程序,而不是容易出错的 JSON 便笺。

我们相信,我们使用的工具会影响我们的思维方式--更好的工具,造就更好的思维。我们希望通过 marimo 为 Python 社区提供一个更好的编程环境,以便进行研究和交流;进行代码实验和分享;学习计算科学和教授计算科学。

我们的灵感来自于很多已有的项目, 特别是 Pluto.jlObservableHQ,和 Bret Victor's essays。 marimo 是向响应式数据流编程迈进的一大步。从 IPyflowstreamlitTensorFlowPyTorchJAX,到 React,函数式、声明式和响应式编程的理念正在改善一系列工具。

Image

About

这是 marimo 的中文版本,在保留官方功能与体验的基础上进行了本地化翻译,并会持续拉取、同步官方主线的更新。 一款响应式 Python 笔记本 支持运行可复现实验、使用 SQL 查询、作为脚本执行、部署为应用,并通过 Git 进行版本管理。所有内容均以纯 Python 格式存储,全部操作都可在一个现代化、原生支持 AI 的编辑器中完成。

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Python 61.3%
  • TypeScript 37.3%
  • CSS 0.6%
  • HTML 0.3%
  • JavaScript 0.2%
  • Shell 0.1%
  • Other 0.2%