跳到内容

将 uv 与 marimo 结合使用

marimo 是一个开源 Python 笔记本,它将交互式计算与传统软件的可重现性和可重用性相结合,让您可以使用 Git 进行版本控制、作为脚本运行以及作为应用程序共享。由于 marimo 笔记本存储为纯 Python 脚本,因此它们能够与 uv 紧密集成。

您可以轻松地将 marimo 用作独立工具、作为独立的脚本、在项目中以及在非项目环境中。

将 marimo 用作独立工具

对于即时访问 marimo 笔记本,请随时在隔离的环境中使用以下命令启动 marimo 服务器

$ uvx marimo edit

使用以下命令启动特定的笔记本

$ uvx marimo edit my_notebook.py

将 marimo 与内联脚本元数据结合使用

由于 marimo 笔记本存储为 Python 脚本,因此它们可以使用内联脚本元数据封装自己的依赖项,通过 uv 的脚本支持。 例如,要将 numpy 添加为笔记本的依赖项,请使用此命令

$ uv add --script my_notebook.py numpy

要交互式编辑包含内联脚本元数据的笔记本,请使用

$ uvx marimo edit --sandbox my_notebook.py

marimo 将自动使用 uv 在一个隔离的虚拟环境中启动您的笔记本,其中包含脚本的依赖项。 从 marimo UI 安装的软件包将自动添加到笔记本的脚本元数据中。

您可以选择将这些笔记本作为 Python 脚本运行,而无需打开交互式会话

$ uv run my_notebook.py

在项目中结合使用 marimo

如果您在项目中工作,您可以使用以下命令启动 marimo 笔记本,以访问项目的虚拟环境(假设 marimo 是项目依赖项)

$ uv run marimo edit my_notebook.py

要使其他软件包可用于您的笔记本,请使用 uv add 将它们添加到您的项目中,或者使用 marimo 的内置软件包安装 UI,它会代表您调用 uv add

如果 marimo 不是项目依赖项,您仍然可以使用以下命令运行笔记本

$ uv run --with marimo marimo edit my_notebook.py

这将允许您在编辑笔记本时导入项目的模块。 但是,以这种方式运行时通过 marimo UI 安装的软件包不会添加到您的项目中,并且可能会在后续的 marimo 调用中消失。

在非项目环境中结合使用 marimo

要在与项目无关的虚拟环境中运行 marimo,请直接将 marimo 添加到环境中

$ uv venv
$ uv pip install numpy
$ uv pip install marimo
$ uv run marimo edit

从这里开始,import numpy 将在笔记本中工作,并且 marimo 的 UI 安装程序将代表您使用 uv pip install 将软件包添加到环境中。

将 marimo 笔记本作为脚本运行

无论如何管理依赖项(使用内联脚本元数据、在项目中或使用非项目环境),您都可以使用以下命令将 marimo 笔记本作为脚本运行

$ uv run my_notebook.py

这会将您的笔记本作为 Python 脚本执行,而无需在浏览器中打开交互式会话。