Skip to content

Latest commit

 

History

History
241 lines (180 loc) · 11.5 KB

README_Chinese.md

File metadata and controls

241 lines (180 loc) · 11.5 KB

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

用户手册 · Discord 社区 · 示例

English | 简体中文

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

为什么选择 marimo

pip install marimo && marimo tutorial intro

在浏览器中运行在线体验平台

跳转到快速起步,了解命令行工具。

响应式编程环境

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

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

与计算成本高昂的笔记兼容 marimo 允许你将运行时配置为 “懒惰”模式,将受影响的单元标记为过时单元,而不是自动运行它们。这样既能保证程序状态,又能防止意外执行昂贵的单元。

同步的 UI 元素 与滑块、下拉菜单和数据框转换器等 UI 元素交互,使用这些元素的单元格会自动以最新值重新运行。

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

动态的 Markdown 与 SQL 使用 Markdown 编写 Python 代码的输出动态进行更新的文档。同时,使用内置 SQL 引擎,可创建依赖于 Python 值的 SQL 查询,并针对数据框、数据库、CSV、Google Sheets 或其他任何内容执行查询,SQL 引擎会将结果返回为 Python 数据框。

即使笔记本(notebook)使用了 markdown 或 SQL,它仍然是纯 Python 程序。

确定性的执行顺序 笔记本的执行顺序是确定的,基于变量引用,而不是单元格在页面上的位置。根据你顺序逻辑来组织笔记本。

易用且强大 Marimo 集成了包括 GitHub Copilot、Ruff 代码格式化、HTML 导出、快速代码补全、VSCode 扩展、交互式数据框查看器等非常有用的功能。

快速起步

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

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

或者在 Gitpod 运行

单击此链接以在 Gitpod 工作区中打开存储库:

https://gitpod.io/#https://github.com/marimo-team/marimo

创建新的笔记本

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

marimo edit

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

marimo run your_notebook.py

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

python your_notebook.py

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

marimo convert your_notebook.ipynb > your_notebook.py

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

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

marimo tutorial --help

如果你有一些问题?

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

更多信息

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

参阅我们的 用户手册, 在 examples/ 文件夹下, 以及我们的精选示例

教程 自定义输入 自定义绘图 自定义布局

贡献

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

看到这里,如果你有任何的想法或者问题,欢迎加入我们的 Discord

社区

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

愿景 ✨

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

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

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