Hub 文档

在 Spaces 上使用 marimo

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

在 Spaces 上使用 marimo

marimo 是一个用于 Python 的响应式 notebook,它将 notebooks 建模为数据流图。当您运行一个单元格或与 UI 元素交互时,marimo 会自动运行受影响的单元格(或将其标记为过时),保持代码和输出的一致性,并在 bug 发生之前防止它们。每个 marimo notebook 都存储为纯 Python 代码,可以作为脚本执行,并可以部署为应用程序。

主要特性

  • ⚡️ 响应式: 运行一个单元格,marimo 会响应式地运行所有依赖的单元格或将其标记为过时
  • 🖐️ 交互式: 将滑块、表格、绘图等绑定到 Python — 无需回调
  • 🔬 可重现: 无隐藏状态,确定性执行,内置包管理
  • 🏃 可执行: 作为 Python 脚本执行,可通过 CLI 参数化
  • 🛜 可共享: 部署为交互式 Web 应用程序或幻灯片,通过 WASM 在浏览器中运行
  • 🛢️ 为数据设计: 使用 SQL 查询数据帧和数据库,过滤和搜索数据帧

在 Spaces 上部署 marimo 应用程序

要开始在 Spaces 上使用 marimo,请单击下面的按钮

这将开始使用 marimo 的 Docker 模板构建您的 Space。如果成功,您应该看到一个类似于 marimo 介绍 notebook 的应用程序。

自定义您的 marimo 应用程序

当您创建一个 marimo Space 时,您将获得一些关键文件来帮助您入门

1. app.py

这是您的主要 marimo notebook 文件,它定义了您的应用程序的逻辑。marimo notebooks 是纯 Python 文件,它使用 @app.cell 装饰器来定义单元格。要了解有关构建 notebooks 和应用程序的更多信息,请参阅 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. 确保您的 notebook 在本地以应用程序模式运行,使用 marimo run app.py
  2. 检查所有必需的包是否都列在 requirements.txt 中
  3. 验证端口配置是否匹配(7860 是 Spaces 的默认端口)
  4. 检查 Space 日志中是否有任何 Python 错误

如需更多帮助,请访问 marimo Discord打开 issue

< > 在 GitHub 上更新