mirror of
https://github.com/astral-sh/uv.git
synced 2025-07-07 21:35:00 +00:00
docs: integration with marimo guide (#13691)
Some checks are pending
CI / build binary | linux libc (push) Blocked by required conditions
CI / cargo build (msrv) (push) Blocked by required conditions
CI / build binary | linux musl (push) Blocked by required conditions
CI / build binary | macos x86_64 (push) Blocked by required conditions
CI / build binary | windows x86_64 (push) Blocked by required conditions
CI / Determine changes (push) Waiting to run
CI / lint (push) Waiting to run
CI / cargo clippy | ubuntu (push) Blocked by required conditions
CI / cargo clippy | windows (push) Blocked by required conditions
CI / cargo dev generate-all (push) Blocked by required conditions
CI / cargo shear (push) Waiting to run
CI / cargo test | ubuntu (push) Blocked by required conditions
CI / cargo test | macos (push) Blocked by required conditions
CI / cargo test | windows (push) Blocked by required conditions
CI / check windows trampoline | aarch64 (push) Blocked by required conditions
CI / check windows trampoline | i686 (push) Blocked by required conditions
CI / check windows trampoline | x86_64 (push) Blocked by required conditions
CI / test windows trampoline | i686 (push) Blocked by required conditions
CI / test windows trampoline | x86_64 (push) Blocked by required conditions
CI / typos (push) Waiting to run
CI / mkdocs (push) Waiting to run
CI / build binary | macos aarch64 (push) Blocked by required conditions
CI / build binary | windows aarch64 (push) Blocked by required conditions
CI / build binary | freebsd (push) Blocked by required conditions
CI / ecosystem test | pydantic/pydantic-core (push) Blocked by required conditions
CI / ecosystem test | prefecthq/prefect (push) Blocked by required conditions
CI / ecosystem test | pallets/flask (push) Blocked by required conditions
CI / smoke test | linux (push) Blocked by required conditions
CI / check system | alpine (push) Blocked by required conditions
CI / smoke test | macos (push) Blocked by required conditions
CI / smoke test | windows x86_64 (push) Blocked by required conditions
CI / smoke test | windows aarch64 (push) Blocked by required conditions
CI / check system | python3.12 via chocolatey (push) Blocked by required conditions
CI / integration test | conda on ubuntu (push) Blocked by required conditions
CI / integration test | deadsnakes python3.9 on ubuntu (push) Blocked by required conditions
CI / integration test | free-threaded on linux (push) Blocked by required conditions
CI / integration test | free-threaded on windows (push) Blocked by required conditions
CI / integration test | pypy on ubuntu (push) Blocked by required conditions
CI / integration test | pypy on windows (push) Blocked by required conditions
CI / integration test | graalpy on ubuntu (push) Blocked by required conditions
CI / integration test | graalpy on windows (push) Blocked by required conditions
CI / integration test | github actions (push) Blocked by required conditions
CI / integration test | free-threaded python on github actions (push) Blocked by required conditions
CI / integration test | determine publish changes (push) Blocked by required conditions
CI / integration test | uv publish (push) Blocked by required conditions
CI / integration test | uv_build (push) Blocked by required conditions
CI / check cache | ubuntu (push) Blocked by required conditions
CI / check cache | macos aarch64 (push) Blocked by required conditions
CI / check system | python on debian (push) Blocked by required conditions
CI / check system | python on fedora (push) Blocked by required conditions
CI / check system | python on ubuntu (push) Blocked by required conditions
CI / check system | python on opensuse (push) Blocked by required conditions
CI / check system | python on rocky linux 8 (push) Blocked by required conditions
CI / check system | python on rocky linux 9 (push) Blocked by required conditions
CI / check system | graalpy on ubuntu (push) Blocked by required conditions
CI / check system | pypy on ubuntu (push) Blocked by required conditions
CI / check system | pyston (push) Blocked by required conditions
CI / check system | python on macos aarch64 (push) Blocked by required conditions
CI / check system | homebrew python on macos aarch64 (push) Blocked by required conditions
CI / check system | python on macos x86-64 (push) Blocked by required conditions
CI / check system | python3.10 on windows x86-64 (push) Blocked by required conditions
CI / check system | python3.10 on windows x86 (push) Blocked by required conditions
CI / check system | python3.13 on windows x86-64 (push) Blocked by required conditions
CI / check system | x86-64 python3.13 on windows aarch64 (push) Blocked by required conditions
CI / check system | windows registry (push) Blocked by required conditions
CI / check system | python3.9 via pyenv (push) Blocked by required conditions
CI / check system | python3.13 (push) Blocked by required conditions
CI / check system | conda3.11 on macos aarch64 (push) Blocked by required conditions
CI / check system | conda3.8 on macos aarch64 (push) Blocked by required conditions
CI / check system | conda3.11 on linux x86-64 (push) Blocked by required conditions
CI / check system | conda3.8 on linux x86-64 (push) Blocked by required conditions
CI / check system | conda3.11 on windows x86-64 (push) Blocked by required conditions
CI / check system | conda3.8 on windows x86-64 (push) Blocked by required conditions
CI / check system | amazonlinux (push) Blocked by required conditions
CI / check system | embedded python3.10 on windows x86-64 (push) Blocked by required conditions
CI / benchmarks (push) Blocked by required conditions
Some checks are pending
CI / build binary | linux libc (push) Blocked by required conditions
CI / cargo build (msrv) (push) Blocked by required conditions
CI / build binary | linux musl (push) Blocked by required conditions
CI / build binary | macos x86_64 (push) Blocked by required conditions
CI / build binary | windows x86_64 (push) Blocked by required conditions
CI / Determine changes (push) Waiting to run
CI / lint (push) Waiting to run
CI / cargo clippy | ubuntu (push) Blocked by required conditions
CI / cargo clippy | windows (push) Blocked by required conditions
CI / cargo dev generate-all (push) Blocked by required conditions
CI / cargo shear (push) Waiting to run
CI / cargo test | ubuntu (push) Blocked by required conditions
CI / cargo test | macos (push) Blocked by required conditions
CI / cargo test | windows (push) Blocked by required conditions
CI / check windows trampoline | aarch64 (push) Blocked by required conditions
CI / check windows trampoline | i686 (push) Blocked by required conditions
CI / check windows trampoline | x86_64 (push) Blocked by required conditions
CI / test windows trampoline | i686 (push) Blocked by required conditions
CI / test windows trampoline | x86_64 (push) Blocked by required conditions
CI / typos (push) Waiting to run
CI / mkdocs (push) Waiting to run
CI / build binary | macos aarch64 (push) Blocked by required conditions
CI / build binary | windows aarch64 (push) Blocked by required conditions
CI / build binary | freebsd (push) Blocked by required conditions
CI / ecosystem test | pydantic/pydantic-core (push) Blocked by required conditions
CI / ecosystem test | prefecthq/prefect (push) Blocked by required conditions
CI / ecosystem test | pallets/flask (push) Blocked by required conditions
CI / smoke test | linux (push) Blocked by required conditions
CI / check system | alpine (push) Blocked by required conditions
CI / smoke test | macos (push) Blocked by required conditions
CI / smoke test | windows x86_64 (push) Blocked by required conditions
CI / smoke test | windows aarch64 (push) Blocked by required conditions
CI / check system | python3.12 via chocolatey (push) Blocked by required conditions
CI / integration test | conda on ubuntu (push) Blocked by required conditions
CI / integration test | deadsnakes python3.9 on ubuntu (push) Blocked by required conditions
CI / integration test | free-threaded on linux (push) Blocked by required conditions
CI / integration test | free-threaded on windows (push) Blocked by required conditions
CI / integration test | pypy on ubuntu (push) Blocked by required conditions
CI / integration test | pypy on windows (push) Blocked by required conditions
CI / integration test | graalpy on ubuntu (push) Blocked by required conditions
CI / integration test | graalpy on windows (push) Blocked by required conditions
CI / integration test | github actions (push) Blocked by required conditions
CI / integration test | free-threaded python on github actions (push) Blocked by required conditions
CI / integration test | determine publish changes (push) Blocked by required conditions
CI / integration test | uv publish (push) Blocked by required conditions
CI / integration test | uv_build (push) Blocked by required conditions
CI / check cache | ubuntu (push) Blocked by required conditions
CI / check cache | macos aarch64 (push) Blocked by required conditions
CI / check system | python on debian (push) Blocked by required conditions
CI / check system | python on fedora (push) Blocked by required conditions
CI / check system | python on ubuntu (push) Blocked by required conditions
CI / check system | python on opensuse (push) Blocked by required conditions
CI / check system | python on rocky linux 8 (push) Blocked by required conditions
CI / check system | python on rocky linux 9 (push) Blocked by required conditions
CI / check system | graalpy on ubuntu (push) Blocked by required conditions
CI / check system | pypy on ubuntu (push) Blocked by required conditions
CI / check system | pyston (push) Blocked by required conditions
CI / check system | python on macos aarch64 (push) Blocked by required conditions
CI / check system | homebrew python on macos aarch64 (push) Blocked by required conditions
CI / check system | python on macos x86-64 (push) Blocked by required conditions
CI / check system | python3.10 on windows x86-64 (push) Blocked by required conditions
CI / check system | python3.10 on windows x86 (push) Blocked by required conditions
CI / check system | python3.13 on windows x86-64 (push) Blocked by required conditions
CI / check system | x86-64 python3.13 on windows aarch64 (push) Blocked by required conditions
CI / check system | windows registry (push) Blocked by required conditions
CI / check system | python3.9 via pyenv (push) Blocked by required conditions
CI / check system | python3.13 (push) Blocked by required conditions
CI / check system | conda3.11 on macos aarch64 (push) Blocked by required conditions
CI / check system | conda3.8 on macos aarch64 (push) Blocked by required conditions
CI / check system | conda3.11 on linux x86-64 (push) Blocked by required conditions
CI / check system | conda3.8 on linux x86-64 (push) Blocked by required conditions
CI / check system | conda3.11 on windows x86-64 (push) Blocked by required conditions
CI / check system | conda3.8 on windows x86-64 (push) Blocked by required conditions
CI / check system | amazonlinux (push) Blocked by required conditions
CI / check system | embedded python3.10 on windows x86-64 (push) Blocked by required conditions
CI / benchmarks (push) Blocked by required conditions
<!-- Thank you for contributing to uv! To help us out with reviewing, please consider the following: - Does this pull request include a summary of the change? (See below.) - Does this pull request include a descriptive title? - Does this pull request include references to any relevant issues? --> ## Summary This change adds a new integration guide, on using uv with marimo notebooks. It is similar to but simpler than the existing Jupyter guide, since marimo stores notebooks as Python files and also integrates tightly with uv for package management. The guide showcases four ways of using uv with marimo: 1. marimo as a standalone tool (`uvx`) 2. managing inline script metadata (an alternative to Jupyter kernels, marimo has no concept of kernels) 3. in project environments 4. in non-project environments ## Test Plan N/A as this is a docs-only change. --------- Co-authored-by: Zanie Blue <contact@zanie.dev>
This commit is contained in:
parent
95c1463965
commit
20cfc93c58
3 changed files with 111 additions and 1 deletions
|
@ -3,7 +3,8 @@
|
|||
Learn how to integrate uv with other software:
|
||||
|
||||
- [Using in Docker images](./docker.md)
|
||||
- [Using with Jupyter](./jupyter.md)
|
||||
- [Using with Jupyter notebooks](./jupyter.md)
|
||||
- [Using with marimo notebooks](./marimo.md)
|
||||
- [Using with pre-commit](./pre-commit.md)
|
||||
- [Using in GitHub Actions](./github.md)
|
||||
- [Using in GitLab CI/CD](./gitlab.md)
|
||||
|
|
108
docs/guides/integration/marimo.md
Normal file
108
docs/guides/integration/marimo.md
Normal file
|
@ -0,0 +1,108 @@
|
|||
---
|
||||
title: Using uv with marimo
|
||||
description:
|
||||
A complete guide to using uv with marimo notebooks for interactive computing, script execution,
|
||||
and data apps.
|
||||
---
|
||||
|
||||
# Using uv with marimo
|
||||
|
||||
[marimo](https://github.com/marimo-team/marimo) is an open-source Python notebook that blends
|
||||
interactive computing with the reproducibility and reusability of traditional software, letting you
|
||||
version with Git, run as scripts, and share as apps. Because marimo notebooks are stored as pure
|
||||
Python scripts, they are able to integrate tightly with uv.
|
||||
|
||||
You can readily use marimo as a standalone tool, as self-contained scripts, in projects, and in
|
||||
non-project environments.
|
||||
|
||||
## Using marimo as a standalone tool
|
||||
|
||||
For ad-hoc access to marimo notebooks, start a marimo server at any time in an isolated environment
|
||||
with:
|
||||
|
||||
```console
|
||||
$ uvx marimo edit
|
||||
```
|
||||
|
||||
Start a specific notebook with:
|
||||
|
||||
```console
|
||||
$ uvx marimo edit my_notebook.py
|
||||
```
|
||||
|
||||
## Using marimo with inline script metadata
|
||||
|
||||
Because marimo notebooks are stored as Python scripts, they can encapsulate their own dependencies
|
||||
using inline script metadata, via uv's [support for scripts](../../guides/scripts.md). For example,
|
||||
to add `numpy` as a dependency to your notebook, use this command:
|
||||
|
||||
```console
|
||||
$ uv add --script my_notebook.py numpy
|
||||
```
|
||||
|
||||
To interactively edit a notebook containing inline script metadata, use:
|
||||
|
||||
```console
|
||||
$ uvx marimo edit --sandbox my_notebook.py
|
||||
```
|
||||
|
||||
marimo will automatically use uv to start your notebook in an isolated virtual environment with your
|
||||
script's dependencies. Packages installed from the marimo UI will automatically be added to the
|
||||
notebook's script metadata.
|
||||
|
||||
You can optionally run these notebooks as Python scripts, without opening an interactive session:
|
||||
|
||||
```console
|
||||
$ uv run my_notebook.py
|
||||
```
|
||||
|
||||
## Using marimo within a project
|
||||
|
||||
If you're working within a [project](../../concepts/projects/index.md), you can start a marimo
|
||||
notebook with access to the project's virtual environment via the following command (assuming marimo
|
||||
is a project dependency):
|
||||
|
||||
```console
|
||||
$ uv run marimo edit my_notebook.py
|
||||
```
|
||||
|
||||
To make additional packages available to your notebook, either add them to your project with
|
||||
`uv add`, or use marimo's built-in package installation UI, which will invoke `uv add` on your
|
||||
behalf.
|
||||
|
||||
If marimo is not a project dependency, you can still run a notebook with the following command:
|
||||
|
||||
```console
|
||||
$ uv run --with marimo marimo edit my_notebook.py
|
||||
```
|
||||
|
||||
This will let you import your project's modules while editing your notebook. However, packages
|
||||
installed via marimo's UI when running in this way will not be added to your project, and may
|
||||
disappear on subsequent marimo invocations.
|
||||
|
||||
## Using marimo in a non-project environment
|
||||
|
||||
To run marimo in a virtual environment that isn't associated with a
|
||||
[project](../../concepts/projects/index.md), add marimo to the environment directly:
|
||||
|
||||
```console
|
||||
$ uv venv
|
||||
$ uv pip install numpy
|
||||
$ uv pip install marimo
|
||||
$ uv run marimo edit
|
||||
```
|
||||
|
||||
From here, `import numpy` will work within the notebook, and marimo's UI installer will add packages
|
||||
to the environment with `uv pip install` on your behalf.
|
||||
|
||||
## Running marimo notebooks as scripts
|
||||
|
||||
Regardless of how your dependencies are managed (with inline script metadata, within a project, or
|
||||
with a non-project environment), you can run marimo notebooks as scripts with:
|
||||
|
||||
```console
|
||||
$ uv run my_notebook.py
|
||||
```
|
||||
|
||||
This executes your notebook as a Python script, without opening an interactive session in your
|
||||
browser.
|
Loading…
Add table
Add a link
Reference in a new issue