2.7.3 与 marimo 配合使用

原文链接: https://docs.astral.sh/uv/guides/integration/marimo/

2.7.3 与 marimo 配合使用

marimo 是一个开源 Python notebook,它把交互式计算与传统软件的可复现性和可复用性结合起来,让你可以用 Git 做版本管理、作为脚本运行,并作为应用分享。由于 marimo notebook 以纯 Python 脚本形式存储,它们能够与 uv 紧密集成。

你可以轻松地把 marimo 当作独立工具使用、写成自包含脚本、在项目中使用,以及在非项目环境中使用。

把 marimo 当作独立工具使用

如需临时使用 marimo notebook,可以随时在隔离环境中启动 marimo 服务器:

1
$ uvx marimo edit

启动特定的 notebook:

1
$ uvx marimo edit my_notebook.py

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

由于 marimo notebook 以 Python 脚本形式存储,它们可以通过 uv 对脚本的支持用内联脚本元数据封装自己的依赖。例如,要把 numpy 添加为 notebook 的依赖,请使用:

1
$ uv add --script my_notebook.py numpy

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

1
$ uvx marimo edit --sandbox my_notebook.py

marimo 会自动使用 uv 在包含脚本依赖的隔离虚拟环境中启动你的 notebook。从 marimo UI 安装的包会自动加入 notebook 的脚本元数据。

你也可以选择把这些 notebook 当作 Python 脚本运行,而无需打开交互式会话:

1
$ uv run my_notebook.py

在项目中使用 marimo

如果你在项目中工作,可以通过下面的命令启动能够访问项目虚拟环境的 marimo notebook(假设 marimo 是项目依赖):

1
$ uv run marimo edit my_notebook.py

要让 notebook 可以使用更多包,可以用 uv add 把它们加入项目,或者使用 marimo 内置的包安装 UI,它会代你调用 uv add。

如果 marimo 不是项目依赖,你仍然可以用下面的命令运行 notebook:

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

这样你在编辑 notebook 时仍然可以导入项目的模块。不过,以这种方式运行时通过 marimo UI 安装的包不会被加入你的项目,并可能在后续调用 marimo 时消失。

在非项目环境中使用 marimo

要在不与项目关联的虚拟环境中运行 marimo,请把 marimo 直接加入该环境:

1
2
3
4
$ uv venv
$ uv pip install numpy
$ uv pip install marimo
$ uv run marimo edit

这样 import numpy 就能在 notebook 中生效,而 marimo 的 UI 安装器会代你用 uv pip install 把包加入环境。

把 marimo notebook 当作脚本运行

无论你的依赖如何管理(使用内联脚本元数据、在项目中,或在非项目环境中),都可以这样把 marimo notebook 当作脚本运行:

1
$ uv run my_notebook.py

这会把你的 notebook 当作 Python 脚本执行,而不会在浏览器中打开交互式会话。

最后修改 September 25, 2026: 更新 (221c74c33)