Hub documentation

marimo 在 Spaces 上

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

marimo 在 Spaces 上

marimo 是一款面向 Python 的响应式笔记本,它将笔记本建模为数据流图。当您运行某个单元格或与 UI 元素交互时,marimo 会自动运行受影响的单元格(或将其标记为过期状态),从而保持代码与输出的一致性,并在问题发生前预防潜在错误。每个 marimo 笔记本都以纯 Python 形式存储,可作为脚本执行,也可部署为应用程序。

主要功能:

  • ⚡️ 响应式:运行一个单元格后,marimo 会响应式地运行所有依赖它的单元格,或将它们标记为过期
  • 🖐️ 交互式:将滑块、表格、图表等绑定到 Python——无需回调
  • 🔬 可复现:无隐藏状态,确定性执行,内置包管理
  • 🏃 可执行文件:作为 Python 脚本执行,通过命令行参数进行配置
  • 🛜 shareable: 部署为交互式 Web 应用或幻灯片,通过 WASM 在浏览器中运行
  • 🛢️ 专为数据而设计:使用 SQL 查询数据框和数据库,筛选和搜索数据框

在 Spaces 上部署 marimo 应用

要在 Spaces 上开始使用 marimo,请点击下方的按钮:

这将开始使用 marimo 的 Docker 模板构建您的 Space。如果成功,您应该会看到一个与 marimo 入门笔记本 类似的应用程序。

自定义您的 marimo 应用

创建 marimo Space 时,您将获得几个关键文件以帮助您快速上手:

1. app.py

这是您的主 marimo notebook 文件,用于定义应用的逻辑。marimo notebook 是纯 Python 文件,使用 @app.cell 装饰器来定义单元格。要了解有关构建 notebook 和应用的更多信息,请参阅 marimo 文档。随着应用的扩展,您可以将代码组织成模块,并将其导入到主 notebook 中。

2. Dockerfile

marimo 应用的 Dockerfile 非常简洁,因为 marimo 的系统依赖很少。关键要求如下:

  • 它会安装requirements.txt中列出的依赖项(使用uv)
  • 它会创建一个非 root 用户以增强安全性
  • 它使用 marimo run app.py 运行该应用

如果应用程序需要额外的系统依赖项、权限或其他 CLI 标志,您可能需要修改此文件。

3. requirements.txt

Space 会自动安装 requirements.txt 文件中列出的依赖项。至少,您必须在此文件中包含 marimo。您还需要添加应用程序所需的其他任何软件包。

marimo Space 模板提供了一个基础配置,您可以根据需求进行扩展。部署后,您的 notebook 将以“应用模式”运行,该模式会隐藏代码单元格,仅显示交互式输出——非常适合与最终用户分享。如果您希望在应用中包含代码单元格,可以在 Dockerfile 中的 marimo run 命令中添加 --include-code 参数。

其他资源和支持

故障排除

如果您遇到问题:

  1. 确保您的笔记本使用 marimo run app.py 在本地以应用模式运行
  2. 检查所有必需的包是否都列在 requirements.txt 中
  3. 验证端口配置是否匹配(7860 是 Spaces 的默认值)
  4. 检查 Space 日志中是否存在任何 Python 错误

如需更多帮助,请访问 marimo Discord 或 提交 issue。

Update on GitHub