再現可能で git フレンドリーで、スクリプトまたはアプリとしてデプロイ可能なリアクティブ Python ノートブック。
ドキュメント· Discord ·例
English |简体中文
marimo はリアクティブな Python ノートブックです。セルを実行するか UI 要素と対話すると、marimo は依存するセルを自動的に実行し (または古いセルとしてマークし)、コードと出力の一貫性を保ちます。 marimo ノートブックは純粋な Python として保存され、スクリプトとして実行可能で、アプリとしてデプロイ可能です。
ハイライト。
jupyter
、 streamlit
、 jupytext
、 ipywidgets
、 papermill
などを置き換えます。.py
ファイルとして保存されます pip install marimo & & marimo tutorial intro
完全にブラウザ上で動作するオンラインプレイグラウンドでマリモを試してみてください!
CLI で入門用のクイックスタートに移動してください。
marimo は、ノートブックのコード、出力、プログラムの状態が一貫していることを保証します。これにより、Jupyter などの従来のノートブックに関連する多くの問題が解決されます。
リアクティブプログラミング環境。セルを実行すると、marimo はその変数を参照するセルを自動的に実行することで反応し、手動でセルを再実行するというエラーが発生しやすい作業を排除します。セルを削除すると、marimo はその変数をプログラム メモリからスクラブし、非表示状態を削除します。
高価なノートパソコンにも対応。 marimo では、ランタイムを遅延的に構成し、影響を受けるセルを自動的に実行する代わりに古いものとしてマークすることができます。これにより、高価なセルが誤って実行されることを防ぎながら、プログラムの状態が保証されます。
同期された UI 要素。スライダー、ドロップダウン、データフレーム トランスフォーマー、チャット インターフェイスなどの UI 要素を操作すると、それらを使用するセルが最新の値で自動的に再実行されます。
インタラクティブなデータフレーム。コードを必要とせず、数百万行のページスルー、検索、フィルター、並べ替えを非常に高速に実行できます。
パフォーマンスの高いランタイム。 marimo はコードを静的に解析することで、実行する必要があるセルのみを実行します。
動的マークダウンと SQL。マークダウンを使用して、Python データに依存する動的なストーリーを伝えます。または、Python 値に依存する SQL クエリを構築し、組み込み SQL エンジンを使用してデータフレーム、データベース、CSV、Google スプレッドシート、またはその他のものに対して実行し、結果を Python データフレームとして返します。
たとえマークダウンや SQL を使用していても、ノートブックは依然として純粋な Python です。
決定的な実行順序。ノートブックは、ページ上のセルの位置ではなく変数参照に基づいて、決定的な順序で実行されます。伝えたいストーリーに最適になるようにノートブックを整理します。
組み込みのパッケージ管理。 marimo にはすべての主要なパッケージ マネージャーのサポートが組み込まれており、インポート時にパッケージをインストールできます。 marimo は、ノートブック ファイル内のパッケージ要件をシリアル化して、分離された venv サンドボックスに自動インストールすることもできます。
電池付属。 marimo には、GitHub Copilot、AI アシスタント、Ruff コードの書式設定、HTML エクスポート、高速コード補完、VS Code 拡張機能、インタラクティブなデータフレーム ビューア、その他多くの品質オブライフ機能が付属しています。
インストール。ターミナルで実行します
pip install marimo # or conda install -c conda-forge marimo
marimo tutorial intro
ノートブックを作成します。
ノートブックを作成または編集するには
marimo edit
アプリを実行します。 Python コードを非表示にして編集できない状態で、ノートブックを Web アプリとして実行します。
marimo run your_notebook.py
スクリプトとして実行します。コマンドラインでノートブックをスクリプトとして実行します。
python your_notebook.py
Jupyter ノートブックを自動的に変換します。 CLI を使用して Jupyter ノートブックをマリモ ノートブックに自動的に変換する
marimo convert your_notebook.ipynb > your_notebook.py
または、Web インターフェースを使用してください。
チュートリアル。すべてのチュートリアルをリストします。
marimo tutorial --help
ドキュメントの FAQ を参照してください。
marimo は簡単に始めることができ、パワーユーザーにとっても十分な余地があります。たとえば、これは marimo で作成された埋め込みビジュアライザー (ビデオ) です。
詳細については、ドキュメント、 examples/
フォルダー、およびギャラリーをご覧ください。
チュートリアル | 入力 | プロット | レイアウト |
皆様のご貢献に感謝いたします。サポートするために専門家である必要はありません。開始方法の詳細については、CONTRIBUTING.md を参照してください。
質問がありますか? Discord でご連絡ください。
私たちはコミュニティを構築しています。遊びに来てください!
marimo は、エラーが発生しやすい JSON スクラッチパッドの代わりに、再現可能でインタラクティブで共有可能な Python プログラムとして Python ノートブックを再発明したものです。
私たちは、私たちが使用するツールが私たちの考え方を形作る、つまりより良いツールはより良い精神を生み出すと信じています。私たちは marimo を使用して、Python コミュニティに研究を行い、それを伝達するためのより良いプログラミング環境を提供したいと考えています。コードを試して共有する。計算科学を学び、教えること。
私たちのインスピレーションは、多くの場所やプロジェクト、特に Pluto.jl、ObservableHQ、Bret Victor のエッセイから得ています。 marimo は、リアクティブ データフロー プログラミングへの大きな動きの一部です。 IPyflow、streamlit、TensorFlow、PyTorch、JAX、React に至るまで、関数型プログラミング、宣言型プログラミング、リアクティブ プログラミングのアイデアは、幅広いツールをより良いものに変えています。