再現性が高く、Git対応で、スクリプトやアプリとして展開できるリアクティブなPythonノートブック。
ドキュメント · Discord · サンプル · ギャラリー · YouTube
English | 简体中文 | 日本語 | Español
marimoはリアクティブなPythonノートブックです:セルを実行したりUI要素を操作すると、marimoは自動的に依存するセルを実行(またはそれらを古いものとしてマーク)し、コードと出力の一貫性を保ちます。marimoノートブックは純粋なPythonとして保存され、スクリプトとして実行でき、アプリとして展開できます。
主な特徴
- 🚀 すぐに使える充実機能:
jupyter、streamlit、jupytext、ipywidgets、papermillなどの代替 - ⚡️ リアクティブ: セルを実行すると、marimoはリアクティブにすべての依存セルを実行するか、それらを古いものとしてマーク
- 🖐️ インタラクティブ: スライダー、テーブル、プロットなどをPythonにバインド — コールバック不要
- 🔬 再現性: 隠れた状態なし、決定論的実行、組み込みパッケージ管理
- 🏃 実行可能: Pythonスクリプトとして実行、CLIの引数によるパラメータ化
- 🛜 共有可能: インタラクティブなWebアプリとして展開またはスライド、ブラウザでWASM経由で実行
- 🛢️ データ向け設計: SQLでデータフレームやデータベースをクエリ、データフレームのフィルタリングと検索
- 🐍 Git対応: ノートブックは
.pyファイルとして保存 - ⌨️ モダンなエディタ: GitHub Copilot、AIアシスタント、vimキーバインディング、変数エクスプローラー、その他
pip install marimo && marimo tutorial introオンラインプレイグラウンドでmarimoを試してみてください。完全にブラウザ内で動作します!
CLIの基本的な使い方についてはクイックスタートをご覧ください。
marimoはノートブックのコード、出力、プログラムの状態の一貫性を保証します。これにより、Jupyterのような従来のノートブックに関連する多くの問題を解決します。
リアクティブなプログラミング環境 セルを実行すると、marimoは_リアクト_し、その変数を参照するセルを自動的に実行することで、手動でセルを再実行するというエラーが起きやすいタスクを排除します。セルを削除すると、marimoはその変数をプログラムのメモリから削除し、隠れた状態を排除します。
計算コストの高いノートブックとの互換性 marimoでは、ランタイムを遅延評価に設定することができ、影響を受けるセルを自動的に実行する代わりに古いものとしてマークします。これにより、プログラムの状態に関する保証を提供しながら、コストの高いセルの偶発的な実行を防ぎます。
同期されたUI要素 スライダー、ドロップダウン、データフレーム変換、チャットインターフェースなどのUI要素を操作すると、それらを使用するセルが自動的に最新の値で再実行されます。
インタラクティブなデータフレーム 何百万行ものデータをページング、検索、フィルタリング、ソートを、コード不要で驚くほど高速に実行できます。
高性能ランタイム marimoはコードを静的に分析することで、実行が必要なセルのみを実行します。
動的なマークダウンとSQL マークダウンを使用して、Pythonデータに依存する動的なストーリーを作成できます。または、Pythonの値に依存するSQLクエリを構築し、データフレーム、データベース、CSV、Google Sheets、またはその他のものに対して実行できます。組み込みのSQLエンジンを使用すると、結果がPythonのデータフレームとして返されます。
マークダウンやSQLを使用しても、ノートブックは純粋なPythonのままです。
決定論的な実行順序 ノートブックは、セルのページ上の位置ではなく、変数の参照に基づいて決定論的な順序で実行されます。伝えたいストーリーに最適な方法でノートブックを整理できます。
組み込みパッケージ管理 marimoには主要なパッケージマネージャーのサポートが組み込まれており、インポート時にパッケージをインストールできます。marimoはパッケージの要件をシリアル化してノートブックファイルに保存し、隔離されたvenv環境に自動的にインストールすることもできます。
必要な機能がすべて揃っている marimoにはGitHub Copilot、AIアシスタント、Ruffコードフォーマット、HTML出力、高速コード補完、VS Code拡張機能、インタラクティブなデータフレームビューワー、その他多くの便利な機能が含まれています。
インストール ターミナルで次を実行します:
pip install marimo # または conda install -c conda-forge marimo
marimo tutorial introSQL セル、AI 補完などの追加機能を含めてインストールするには、次を実行します:
pip install marimo[recommended]ノートブックの作成
次のコマンドでノートブックを作成または編集します:
marimo editアプリの実行 ノートブックをウェブアプリとして実行し、Pythonコードを非表示かつ編集不可にします:
marimo run your_notebook.pyスクリプトとして実行 ノートブックをコマンドラインでスクリプトとして実行します:
python your_notebook.pyJupyterノートブックの自動変換 CLIを使用してJupyterノートブックをmarimoノートブックに自動変換します:
marimo convert your_notebook.ipynb > your_notebook.pyまたはウェブインターフェースを使用します。
チュートリアル すべてのチュートリアルをリストします:
marimo tutorial --helpFAQをご覧ください。
marimoは簡単に始められ、パワーユーザー向けの多くの機能があります。 例えば、marimoで作成された埋め込み可視化ツールです (動画):
詳細については、ドキュメント、使用例、ギャラリーをご覧ください。
|
|
|
|
| チュートリアル | 入力 | プロット | レイアウト |
|
|
|
|
|
すべての貢献を歓迎します!専門家である必要はありません。 開始方法の詳細については、CONTRIBUTING.mdをご覧ください。
質問がありますか?Discordでお問い合わせください。
コミュニティを構築中です。ぜひ参加してください!
- 🌟 GitHubでスターをつける
- 💬 Discordでチャット
- 📧 ニュースレターを購読
- ☁️ クラウドウェイトリストに参加
- ✏️ GitHubでディスカッションを開始
- 🦋 Blueskyでフォロー
- 🐦 Twitterでフォロー
- 🎥 YouTubeで購読
- 🕴️ LinkedInでフォロー
marimoは、エラーが発生しやすいJSONのスクラッチパッドではなく、再現性が高く、インタラクティブで、共有可能なPythonプログラムとしてのPythonノートブックの再発明です。
私たちは、使用するツールが私たちの思考方法を形作ると信じています—より良いツールが、より良い思考をもたらします。marimoを通じて、研究を行い、それを伝えるため、コードを実験し、それを共有するため、計算科学を学び、それを教えるために、Pythonコミュニティにより良いプログラミング環境を提供したいと考えています。
私たちのインスピレーションは多くの場所やプロジェクト、特にPluto.jl、ObservableHQ、Bret Victorのエッセイから来ています。marimoはリアクティブなデータフロープログラミングへの大きな動きの一部です。IPyflow、streamlit、TensorFlow、PyTorch、JAX、Reactから、関数型、宣言型、リアクティブプログラミングの考え方が広範囲のツールを良い方向に変革しています。






