Hub documentation
marimo на Spaces
marimo на Spaces
marimo — это реактивный ноутбук для Python, который моделирует ноутбуки как графы потоков данных. При выполнении ячейки или взаимодействии с элементом пользовательского интерфейса marimo автоматически выполняет затронутые ячейки (или помечает их как устаревшие), поддерживая согласованность кода и результатов и предотвращая ошибки до их появления. Каждый ноутбук marimo хранится в виде чистого Python, может выполняться как скрипт и разворачиваться как приложение.
Ключевые возможности:
- ⚡️ реактивный: выполните ячейку, и marimo реактивно выполнит все зависимые ячейки или пометит их как устаревшие
- 🖐️ интерактивный: привязка слайдеров, таблиц, графиков и других элементов к Python — без необходимости использовать обратные вызовы
- 🔬 воспроизводимость: отсутствие скрытого состояния, детерминированное выполнение, встроенное управление пакетами
- 🏃 исполняемый файл: запуск как Python-скрипта, параметризуемого аргументами командной строки
- 🛜 shareable: развёртывание в виде интерактивного веб-приложения или слайдов, запуск в браузере через WASM
- 🛢️ создан для работы с данными: запросы к датафреймам и базам данных с помощью SQL, фильтрация и поиск в датафреймах
Развёртывание приложений marimo на Spaces
Чтобы начать работу с marimo на Spaces, нажмите кнопку ниже:
Это запустит сборку вашего Space с использованием Docker-шаблона marimo. Если всё пройдёт успешно, вы увидите приложение, похожее на ноутбук с введением в marimo.
Настройка вашего приложения marimo
При создании Space на marimo вы получите несколько ключевых файлов, которые помогут вам начать работу:
1. app.py
Это основной файл вашего блокнота marimo, в котором определяется логика приложения. Блокноты marimo — это чистые файлы Python, использующие декоратор @app.cell для определения ячеек. Чтобы узнать больше о создании блокнотов и приложений, см. документацию marimo. По мере роста приложения вы можете организовывать код в модули и импортировать их в основной блокнот.
2. Dockerfile
Dockerfile для приложения marimo минимален, так как у marimo мало системных зависимостей. Ключевые требования:
- Он устанавливает зависимости, перечисленные в
requirements.txt(с помощьюuv) - Создаёт непривилегированного пользователя в целях безопасности
- Он запускает приложение с помощью
marimo run app.py
Возможно, вам потребуется изменить этот файл, если вашему приложению требуются дополнительные системные зависимости, разрешения или другие флаги CLI.
3. requirements.txt
Space автоматически установит зависимости, перечисленные в файле requirements.txt. Минимум в этот файл необходимо включить marimo. Также добавьте все остальные пакеты, необходимые для вашего приложения.
Шаблон Space marimo обеспечивает базовую настройку, которую можно расширять в соответствии с вашими потребностями. При развертывании ваш блокнот будет работать в «режиме приложения», который скрывает ячейки с кодом и отображает только интерактивные результаты — идеально подходит для демонстрации конечным пользователям. Вы можете включить ячейки с кодом в своем приложении, добавив --include-code к команде marimo run в Dockerfile.
Дополнительные ресурсы и поддержка
Устранение неполадок
Если вы столкнулись с проблемами:
- Убедитесь, что ваш ноутбук запускается локально в режиме приложения с помощью
marimo run app.py - Убедитесь, что все необходимые пакеты перечислены в
requirements.txt - Убедитесь, что конфигурация порта совпадает (7860 — это порт по умолчанию для Spaces)
- Проверьте журналы Space на наличие ошибок Python
За дополнительной помощью обращайтесь в Discord-сервер marimo или создайте issue.
Update on GitHub