Что такое Jupyter Server Proxy и Streamlit?
Jupyter Server Proxy – это инструмент, позволяющий запускать внешние веб-приложения (например, Streamlit) непосредственно внутри JupyterLab или Jupyter Notebook. Streamlit – популярный Python-фреймворк для создания интерактивных дашбордов и веб-приложений для анализа данных. Их интеграция через Jupyter Server Proxy создает мощную среду для Data Science, где можно:
- Разрабатывать Streamlit-приложения без переключения между средами
- Запускать интерактивные дашборды в защищенном окружении Jupyter
- Совмещать исследовательские ноутбуки и production-визуализации
Настройка Jupyter Server Proxy для Streamlit
Для интеграции выполните следующие шаги:
- Установите пакеты через pip:
pip install jupyter-server-proxy streamlit
- Создайте файл конфигурации
jupyter_notebook_config.py
с содержимым:c.ServerProxy.servers = { 'streamlit': { 'command': ['streamlit', 'run', '{port}', "--server.port={port}", "--server.headless=true"], 'launcher_entry': {'title': 'Streamlit Dashboard'}, 'absolute_url': False } }
- Перезапустите JupyterLab:
jupyter lab
- Откройте Streamlit через панель Jupyter: иконка появится в меню Launcher
Ключевые преимущества интеграции
- Единая среда разработки: Избегайте переключения между терминалом и браузером
- Безопасность: Приложения работают через аутентификацию Jupyter
- Простота доступа: Запуск одним кликом из интерфейса JupyterLab
- Облачная совместимость: Идеально для JupyterHub и серверных развертываний
Практические примеры использования
Пример 1: Мониторинг данных в реальном времени
Создайте Streamlit-скрипт monitor.py
:
import streamlit as st
import pandas as pd
import time
while True:
df = pd.read_csv('live_data.csv')
st.line_chart(df)
time.sleep(5)
Пример 2: Интерактивный ML-интерфейс
Интеграция моделей scikit-learn с виджетами Streamlit для параметризации.
FAQ: Частые вопросы
Q: Как решить ошибку “Port already in use”?
A: Укажите фиксированный порт в конфиге: "--server.port=8501"
вместо {port}
.
Q: Можно ли использовать с JupyterHub?
A: Да, конфигурация аналогична, но требует прав администратора для настройки на сервере.
Q: Как добавить несколько Streamlit-приложений?
A: Зарегистрируйте каждое приложение отдельным ключом в c.ServerProxy.servers
.
Q: Поддерживает ли проксирование аутентификацию?
A: Да, все запросы проходят через систему авторизации Jupyter.
Заключение
Интеграция Jupyter Server Proxy и Streamlit создает мощный симбиоз для Data Scientist. Она устраняет барьеры между исследованием данных и презентацией результатов, позволяя развертывать интерактивные дашборды в два клика. Используя приведенные инструкции, вы сможете настроить среду для комплексной работы с данными – от анализа в ноутбуках до production-визуализаций.