
Marimo: je nyní vytváření datových aplikací snazší?
Slogan společnosti Marimo na její domovské stránce zněl dříve Budoucnost notebooků Python. Nedávno byl změněn na Unifikované vývojové prostředí pro AI a data.
I když to pravděpodobně lépe vystihuje, co Marimo dokáže, zní to trochu fádně. To je škoda, protože nevystihuje celou pravdu. Marimo je mnohem víc než jen to.
AI shrnutí
- Marimo nabízí působivou kombinaci analýzy dat, prezentace a vývoje aplikací reaktivním a intuitivním způsobem. Jeho silné stránky spočívají v hladké integraci SQL-Python, responzivních komponentách uživatelského rozhraní pro webové aplikace založené na datech a schopnosti proměnit notebooky v dynamické a interaktivní prezentace.
- Marimo se vyznačuje jedinečným reaktivním přístupem, kdy se definované proměnné automaticky aktualizují v celém notebooku. To spolu s uživatelsky přívětivou integrací SQL a hotovými komponentami uživatelského rozhraní zjednodušuje tvorbu datových aplikací, a to i pro složité vizualizace a nástroje. Důraz na jednoduchost a prostředí s jedním souborem (
.pys vloženými závislostmi) činí Marimo ideálním pro reprodukovatelné a sdílené projekty zaměřené na data.- Vývoj Marimo přesahuje tradiční notebooky a umožňuje uživatelům vytvářet interaktivní výukové programy, dynamické datové narativy a experimentální rozhraní. Jeho integrace s AI (prostřednictvím API nebo lokálních modelů) dále vylepšuje průzkum a pracovní postupy kódování. Možnost volby mezi nativním nasazením v prohlížeči (WASM) nebo nasazením na serveru vyhovuje různým hostingovým potřebám a zajišťuje široké spektrum možností datově orientovaných aplikací.
Jeden nástroj, tři využití
Marimo nabízí:
- Notebook Python a SQL
- Prezentační nástroj
- Nástroj pro tvorbu datových aplikací

Podívejme se na jednotlivé části.
Každodenní nástroj pro práci s daty
Marimo je každodenní pomocník pro práci s daty. Působí jako notebook. Většina datových profesionálů již zná iterativní pracovní postupy, které notebooky podporují.
Obsahuje interaktivní komponenty uživatelského rozhraní: tabulky, grafy, bloky markdown, vstupy a posuvníky. Pro asistenci AI je k dispozici integrace LLM. Vždy ověřujte výstupy AI, abyste se vyhnuli halucinacím.
Po prozkoumání a vyčištění dat se stejný notebook může stát prezentací nebo sdílenou aplikací. Je to jen jeden krok od analýzy k dodání.
Notebooky, ale reaktivní
Marimo není klonem Jupyteru. Vypadá jako notebook, ale funguje reaktivně.
Co znamená reaktivní?
Definujte proměnnou v jedné buňce a automaticky se aktualizuje všude, kde je použita.
Předefinování v jiné buňce není povoleno.
To je záměrné.
Pokud jste zvyklí na flexibilitu Jupyteru, může vám to připadat divné. Jakmile to ale zvládnete, umožní vám to rychlé vytváření uživatelského rozhraní. Rozbalovací nabídky, posuvníky a tlačítka fungují bezchybně.
K řízení stavu uživatelského rozhraní použijte marimo's state. Alternativně můžete logiku zabalit do funkcí, abyste se vyhnuli globálním proměnným.
Instalace balíčků z notebooku
Marimo zjednodušuje správu balíčků. Zkuste importovat chybějící balíček a zobrazí se výzva k jeho instalaci. Kliknutím jej nainstalujete, aniž byste museli opustit notebook.
Není třeba přepínat do terminálu ani hádat názvy balíčků. Marimo to vyřídí na pozadí. Jedná se o malou funkci, která zefektivňuje pracovní postupy.

Integrace SQL
Marimo podporuje kromě Pythonu také SQL. Spouštějte dotazy SQL přímo v notebooku. Připojte se k databázím jako SQLite nebo DuckDB nebo dotazujte datové rámce v paměti. Výsledky se integrují s Pythonem pro další analýzu nebo vizualizaci.
Díky tomu je Marimo univerzální pro datové potrubí kombinující SQL a Python.

Datové aplikace na mobilních zařízeních
Aplikace Marimo jsou responzivní a fungují na mobilních zařízeních. Interaktivní prvky, jako jsou posuvníky a rozevírací seznamy, fungují dobře na dotykových obrazovkách. Režim WebAssembly (WASM) zajišťuje, že aplikace běží zcela v prohlížeči, což je ideální pro mobilní uživatele bez závislosti na serveru.
Těžké aplikace s velkými knihovnami nebo datovými sadami se však mohou na mobilních zařízeních načítat pomalu kvůli omezením prohlížeče. Pro složité aplikace nabízí režim serveru lepší výkon, ale vyžaduje backend.
Otestujte aplikace na mobilních zařízeních, abyste se ujistili o jejich použitelnosti, zejména u velkých datových sad nebo složitých vizualizací.
Snímky pro prezentace
Marimo přemění notebooky na sady snímků. Každá buňka může být snímkem. Prezentujte přímo z notebooku s živými, reaktivními prvky.
Vyberte hodnotu z rozevíracího seznamu…
…a okamžitě se aktualizuje na dalším snímku.
To umožňuje dynamické prezentace s živými daty. Není třeba statických screenshotů. Vše je v jednom souboru.
Spolehlivý nástroj pro tvorbu datových aplikací
Existuje mnoho nástrojů pro datové aplikace: Streamlit, Gradio, Dash. Marimo vyniká svou jednoduchostí.
V LovelyData jsme použili Marimo k vytvoření webových aplikací založených na datech. Pod pojmem datové aplikace rozumíme sdílené nástroje, které vizualizují, transformují, filtrují nebo přehledně prezentují data.
Marimo je integrováno s SQL, Pythonem a nespočtem knihoven Pythonu. Příklady zahrnují:
Jeho flexibilita, inspirovaná nástroji jako AnyWidgets, vám umožňuje vytvářet vlastní komponenty pro jedinečné případy použití, od evaluačních nástrojů po interaktivní dashboardy.
Datové aplikace v jednom souboru
Notebooky Marimo jsou standardní soubory .py.
Žádná složitost JSON .ipynb.
Marimo podporuje PEP 723, což umožňuje deklarovat závislosti uvnitř souboru.
Příklad:
# /// skript
# requires-python = „>=3.12“
# dependencies = [
# „duckdb==1.3.1“,
# „marimo“,
# „pandas==2.3.0“,
# ]
# ///
Tím se kód, uživatelské rozhraní a prostředí udržují na jednom místě. Je to ideální pro reprodukovatelnost a sdílení.
Hotové uživatelské rozhraní
Datové aplikace potřebují standardní prvky uživatelského rozhraní: vstupy, tlačítka, zaškrtávací políčka, tabulky, nahrávání souborů. Marimo je poskytuje ihned po instalaci. Potřebujete více? Vytvořte vlastní komponenty s AnyWidgets pro řešení na míru.

Design je minimalistický a čistý. Zaměřuje se na data, ne na okázalý styl. Komponenty se díky reaktivitě hladce integrují.
Python nebo WASM?
Aplikace Marimo běží ve dvou režimech:
- Režim prohlížeče (WASM): Běží v prohlížeči pomocí Pyodide (Python zkompilovaný do WebAssembly).
- Režim serveru: Python běží na backendovém serveru a klienti se připojují přes prohlížeč.
Spuštění v prohlížeči
Režim WebAssembly nevyžaduje žádný server. Sdílejte odkaz nebo hostujte jako statickou stránku. Vše běží v prohlížeči uživatele. To je skvělé z hlediska bezpečnosti a ochrany soukromí.
Vyzkoušejte to na marimo.new.
Nevýhody?
Těžké knihovny zpomalují načítání, zejména při slabém připojení.
Prohlížeče omezují paměť, takže velké datové soubory nebo složité aplikace mohou mít potíže.
Spuštění na serveru
Režim serveru je vhodný pro velké datové soubory nebo uživatele s pomalým internetem. Marimo nabízí několik možností nasazení.
Dynamicky poskytujte jeden notebook nebo složku notebooků.
Porovnání výkonu
Jednoduchá aplikace pro prohlížení souborů zdůrazňuje rozdíly mezi režimy.
| WASM | Server |
|---|---|
![]() | ![]() |
| Vyšší přenos dat a pomalejší načítání. | Nižší přenos dat a rychlejší načítání. |
Integrace AI
Marimo podporuje AI prostřednictvím LLM API nebo lokálních modelů. Generovaný kód lze zkopírovat nebo přidat přímo do notebooku. Zvyšuje to produktivitu při kódování a zkoumání.

Nezpoutaná fantazie
Flexibilita Marima vám umožňuje překročit hranice tradičních notebooků. Vytvářejte interaktivní výukové programy, které provedou uživatele daty. Vytvářejte dynamické datové příběhy, které zaujmou diváky. Navrhujte experimentální rozhraní pro jedinečné vizualizace. Díky reaktivitě a komponentám uživatelského rozhraní Marima je realizace těchto nápadů snadná. Proměňte svůj notebook v nástroj, který inspiruje a informuje.
Závěr
Marimo nenahrazuje všechny nástroje. Pro malé a střední datové aplikace představuje rovnováhu mezi jednoduchostí a výkonem. Je to notebook, prezentační nástroj a nástroj pro tvorbu aplikací – vše v jednom. Rychle se vyvíjí a aktualizace jsou publikovány často.
Pokud máte rádi notebooky Python a chcete interaktivní aplikace, které lze sdílet, vyzkoušejte Marimo. Vaše fantazie je jediným limitem.
Mohlo by vás zajímat
Blog

Vibe analytics: rychlejší než specializované nástroje?

Jak lidé skutečně používají ChatGPT

Teď je druhá nejlepší chvíle, kdy začít s daty
Data Apps

Průzkumník podcastů

Markdown do HTML/PDF

Kouzelný odstraňovač pozadí
Kurzy

Vizualizace dat v Canvě

SQL pro každý den

Python - základy

IT je taky pro holky!

Programování ve VBA



