Hub 文档
在 Spaces 上使用 marimo
并获得增强的文档体验
开始使用
在 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
来选择在您的应用程序中包含代码单元格。
其他资源和支持
故障排除
如果您遇到问题
- 确保您的 notebook 在本地以应用程序模式运行,使用
marimo run app.py
- 检查所有必需的包是否都列在 requirements.txt 中
- 验证端口配置是否匹配(7860 是 Spaces 的默认端口)
- 检查 Space 日志中是否有任何 Python 错误
如需更多帮助,请访问 marimo Discord 或 打开 issue。
< > 在 GitHub 上更新