marimo を Quarto で使う:リアクティブノートブックとの連携

marimo(リアクティブな Python ノートブック)を Quarto の実行環境で使う方法を紹介します。
blog
Published

August 2, 2026

marimo と Quarto

この CMS の実行環境には、marimo という Python の「リアクティブノートブック」も同梱しています。

marimo とは

marimo は、Python コードをセル単位で実行し、変数の依存関係を自動追跡するオープンソースのノートブックです。

  • セルを動かすと、依存しているセルだけ自動で再実行
  • 通常の .ipynb(Jupyter)と違い、実行順の不整合が起きにくい
  • GitHub 上でも差分が見やすい .py 形式で保存できる

なぜ Quarto と相性がいいのか

Quarto は marimo ノートブックをそのままレンダリングできます。

やり方 コマンド
手元でインタラクティブに書く marimo edit notebook.py
ノートブックを HTML に変換 quarto render notebook.py
ノートブックを .qmd に変換 quarto convert notebook.py

つまり「marimo で試行錯誤してから、Quarto の記事に展開する」という流れが自然です。

使ってみる(手元の環境)

このリポジトリの requirements.txt には marimo が含まれているので、npm run generate の前に依存を入れれば使えます。

python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
marimo edit notebook.py

macOS でシステム Python に直接入れると PEP 668 の制限に当たるので、必ず venv(仮想環境)を使いましょう

記事への展開例

marimo で書いたロジックを記事に載せる場合、2つの選択肢があります。

A. .qmd に Python ブロックとして書く(推奨)

import matplotlib.pyplot as plt

x = range(1, 11)
y = [v * 2 for v in x]
plt.bar(x, y)
plt.show()
Figure 1: marimo 流に依存関係を意識した例

B. marimo ノートブックを直接レンダリング

quarto render notebook.py でノートブックを HTML にでき、quarto convert.qmd に変換もできます。

注意点

  • marimo は インタラクティブな作業用のツールです。公開サイトのビルド(CI)では marimo 自体の実行は行いません(コードは .qmd の Python ブロックとして実行されます)
  • marimo で試したコードは、記事に載せるときは「実行結果が再現できる」形(seed 固定等)にするのがベター

まとめ

  • marimo = 依存関係を自動追跡する Python ノートブック
  • この CMS の環境に同梱されており、marimo edit で作業可能
  • 試行錯誤は marimo、公開は Quarto(.qmd)という役割分担がおすすめ