はじめに
最近,たまたま流れてきて知ったのですが,新しい Python のためのエディタとして Marimo が提供されているようです.
私自身,過去には Jupyter を利用していたのですが,メモリ管理がガバガバであったり,セルの実行順によって結果が変わってしまったり,Github での管理に向いていなかったりと言った理由から,.py
スクリプトで記述することが次第に多くなりました.特に,大規模なデータを扱うことが多くなってきた昨今では,バックグラウンド実行のしやすさ的な部分も重要になってきているかもしれません.
Marimo はこうした課題に対して(完全にではないかもしれませんが)アプローチしたエディタとして注目して良いのかもしれません.具体的な強みについては,先に挙げた公式ページで紹介されています.
Quick Start
長々と説明する前に,本記事で取り扱う内容を含めた Marimo の環境を立ち上げる仮想(Docker)環境を以下に示します.もし詳しい説明はともかく,触って覚えたいという方は利用していただければと思います.
Fork してお好きにご利用いただければと思いますが,一応,コアな部分を以下に抜粋しておきます.
.
├── docker-compose.yml
└── environment
├── Dockerfile
└── install_gh.sh
services:
marimo:
build:
context: ./environment
dockerfile: Dockerfile
container_name: marimo
tty: true
FROM ubuntu:22.04
WORKDIR /home/workdir
# Install Python3.10
RUN apt update
RUN apt upgrade -y
RUN apt install -y python3.10
# For initial setting of Python
RUN update-alternatives --install /usr/bin/python python /usr/bin/python3.10 1
RUN apt install -y python3-pip
RUN pip install -U pip
# Install Marimo
RUN pip install "marimo[recommend]"
COPY install_gh.sh /usr/local/bin/install_gh.sh
RUN bash /usr/local/bin/install_gh.sh
RUN pip install openai mcp
RUN apt install -y curl
RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash -
RUN apt install -y nodejs
(type -p wget >/dev/null || ( apt update && apt install wget -y)) \
&& mkdir -p -m 755 /etc/apt/keyrings \
&& out=$(mktemp) && wget -nv -O$out https://cli.github.com/packages/githubcli-archive-keyring.gpg \
&& cat $out | tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null \
&& chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg \
&& mkdir -p -m 755 /etc/apt/sources.list.d \
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | tee /etc/apt/sources.list.d/github-cli.list > /dev/null \
&& apt update \
&& apt install gh -y
Marimo のインストール
最小構成のインストールは非常に簡単です.
Python 環境が整っていることが前提となりますが,
~$ pip install marimo
これだけです.他にも最近広まってきた uv
や最近下火になりつつある(?) conda
によるインストールにも対応しているようです.
今回は個人的な好みで Docker を利用するため,pip
でのインストールの方法を説明します.ベースイメージは Ubuntu 22.04 LTS です.
(余談)Docker + uv の活用方法について模索しているのですが,イマイチ理解できていません.ご存知の方がいらっしゃればご教示いただけると……
さて,上記のインストールが完了すれば Marimo の起動は簡単です.
~$ marimo edit
以上を実行すると,自動的に Marimo のコーディング環境が起動します.
適当にノートブックを作成してみると,以下のような画面が表示されます.
以上で Marimo 自体のインストールは完了しているのですが,以下の点で問題が発生します.
- 一部機能が適切に表示されない
- コーディングエージェントが機能しない
これに対して順に対応していきます.
そもそも Marimo 自体がβ版のライブラリのため,現時点で修正されていないエラー・バグも色々とあるようなのですが,私が対処方法を発見できた範囲のものを記事にしています.
【問題1】一部機能が適切に表示されない
これはどうやら Node.js のバージョンが古い(もしくはインストールがうまくいっていない)というのが問題のようです.対処方法は単純で,バージョンが 20.X
以上の Node.js をインストールします.
~# curl -fsSL https://deb.nodesource.com/setup_22.x | bash -
~# apt install -y nodejs
参考文献はこちら.
apt install -y nodejs
でもインストールができるという記事を見かけましたが,少なくとも私の環境では 20.X
以上のインストールはできませんでした.
【問題2】コーディングエージェントが機能しない
これについては公式に言及があり,コーディングエージェントの認証をする必要があるとのことです.
しかしながら,(少なくとも私の環境では)上記のドキュメント通りにはいかず,以下の手順でコーディングエージェントを有効化しました.ちなみに,今回,私は Github Copilot を用いています.
学生であれば無料で利用可能なのでオススメです.
Step 1. Github-CLI のインストール
Github Copilot の認証のために,Marimo では Github-CLI を利用しているようです.
本記事では Ubuntu の場合のインストールコマンドを記載しておきます.
(type -p wget >/dev/null || ( apt update && apt install wget -y)) \
&& mkdir -p -m 755 /etc/apt/keyrings \
&& out=$(mktemp) && wget -nv -O$out https://cli.github.com/packages/githubcli-archive-keyring.gpg \
&& cat $out | tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null \
&& chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg \
&& mkdir -p -m 755 /etc/apt/sources.list.d \
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | tee /etc/apt/sources.list.d/github-cli.list > /dev/null \
&& apt update \
&& apt install gh -y
以上を実行して gh --version
が使えるようになれば成功です.
Step 2. Github Copilot の認証
Github Copilot を Marimo において利用できるようにするために認証を行います.
marimo edit
を実行して Marimo を立ち上げます.歯車のマークから設定画面を開いて以下の画面にある AI のタブから github
を選択します.
選択後 "Sign in Github Copilot" というリンクが表示されるため,クリックすると以下の画面のように手順が表示されるので,こちらに従って認証を進めてください.
たまに Retrying の表示が出る場合もありますが,しばらく待つと認証に失敗して "Sign in Github Copilot" の表示が出ると思います.
一応,手順を記載しておくと,
- ワンタイムパスコードをコピーする
- 認証リンクにアクセスしてワンタイムパスコードを入力して認証する
- 認証が完了したら
Done
のボタンを押下する
となります.
最後に
これで 1. 基本的なコーディング 2. コーディングエージェントによるコード補完 ができるようになると思います.
本記事執筆時点では Marimo を知ってから1日と経っていないため不足や誤りがあると思いますが,見つけ次第,更新していきます.