Home » Настройка Jupyter Notebook с Python 3 на Ubuntu 24
Настройка Jupyter Notebook с Python 3 на Ubuntu 24

Настройка Jupyter Notebook с Python 3 на Ubuntu 24

Если ты разворачиваешь data science проекты на серверах или просто хочешь иметь удобное окружение для работы с Python прямо в браузере, то Jupyter Notebook — это именно то, что нужно. Особенно актуально для тех, кто работает с VPS или выделенными серверами — можно настроить один раз и получить доступ к полнофункциональной среде разработки откуда угодно. В этой статье разберём установку и настройку Jupyter Notebook с Python 3 на свежей Ubuntu 24.04, причём сделаем это правильно — с виртуальными окружениями, безопасностью и оптимизацией для продакшена.

Как это работает и зачем нужно

Jupyter Notebook — это веб-приложение, которое позволяет создавать и делиться документами с живым кодом, уравнениями, визуализацией и текстом. В отличие от обычного IDE, здесь всё крутится вокруг концепции “notebook” — интерактивного документа, где можно смешивать код, markdown и результаты выполнения.

Архитектура довольно простая:

  • Jupyter Server — бэкенд, который выполняет код и управляет ядрами
  • Notebook Interface — веб-интерфейс в браузере
  • Kernels — процессы, которые выполняют код (Python, R, Julia и т.д.)

Пошаговая установка и настройка

Шаг 1: Подготовка системы

Начнём с обновления системы и установки необходимых пакетов:

sudo apt update && sudo apt upgrade -y
sudo apt install python3 python3-pip python3-venv python3-dev build-essential -y
sudo apt install curl wget git -y

Шаг 2: Создание виртуального окружения

Никогда не ставь Jupyter в системный Python! Создаём изолированное окружение:

mkdir ~/jupyter-env
cd ~/jupyter-env
python3 -m venv jupyter_venv
source jupyter_venv/bin/activate

Шаг 3: Установка Jupyter

Устанавливаем Jupyter и популярные библиотеки для data science:

pip install --upgrade pip
pip install jupyter notebook jupyterlab
pip install numpy pandas matplotlib seaborn plotly
pip install requests beautifulsoup4 scikit-learn

Шаг 4: Генерация конфигурации

Создаём конфигурационный файл:

jupyter notebook --generate-config

Файл конфигурации будет создан в ~/.jupyter/jupyter_notebook_config.py

Шаг 5: Настройка пароля

Генерируем хеш пароля:

python3 -c "from jupyter_server.auth import passwd; print(passwd())"

Скопируй полученный хеш — он понадобится для конфигурации.

Шаг 6: Настройка конфигурации

Редактируем конфигурационный файл:

nano ~/.jupyter/jupyter_notebook_config.py

Добавляем следующие настройки:

# Разрешаем подключения с любых IP
c.NotebookApp.ip = '0.0.0.0'

# Устанавливаем порт (по умолчанию 8888)
c.NotebookApp.port = 8888

# Отключаем автоматическое открытие браузера
c.NotebookApp.open_browser = False

# Устанавливаем пароль (замени на свой хеш)
c.NotebookApp.password = 'argon2:$argon2id$v=19$m=10240,t=10,p=8$...'

# Указываем рабочую директорию
c.NotebookApp.notebook_dir = '/home/your_username/notebooks'

# Разрешаем запуск от root (не рекомендуется для продакшена)
c.NotebookApp.allow_root = False

Шаг 7: Создание рабочей директории

mkdir -p /home/$USER/notebooks
cd /home/$USER/notebooks

Настройка как системный сервис

Чтобы Jupyter автоматически запускался при перезагрузке сервера, создаём systemd service:

sudo nano /etc/systemd/system/jupyter.service

Содержимое файла:

[Unit]
Description=Jupyter Notebook Server
After=network.target

[Service]
Type=simple
User=your_username
WorkingDirectory=/home/your_username/notebooks
ExecStart=/home/your_username/jupyter-env/jupyter_venv/bin/jupyter notebook
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

Включаем и запускаем сервис:

sudo systemctl daemon-reload
sudo systemctl enable jupyter.service
sudo systemctl start jupyter.service
sudo systemctl status jupyter.service

Настройка безопасности

Настройка firewall

sudo ufw allow 8888/tcp
sudo ufw enable
sudo ufw status

Настройка SSL (рекомендуется)

Создаём самоподписанный сертификат:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ~/.jupyter/jupyter.key -out ~/.jupyter/jupyter.crt

Добавляем в конфигурацию:

c.NotebookApp.certfile = '/home/your_username/.jupyter/jupyter.crt'
c.NotebookApp.keyfile = '/home/your_username/.jupyter/jupyter.key'

Сравнение различных подходов

Метод установки Плюсы Минусы Рекомендация
pip install Простота, скорость Конфликты зависимостей Только в venv
conda install Управление зависимостями Больше места, медленнее Для data science
Docker Изоляция, портабельность Сложность, оверхед Для продакшена
Snap/Flatpak Простота установки Ограничения доступа Не рекомендуется

Альтернативные решения

Стоит знать о существующих альтернативах:

  • JupyterLab — следующее поколение Jupyter с улучшенным интерфейсом
  • VS Code — с расширением Python поддерживает .ipynb файлы
  • Google Colab — облачное решение с бесплатными GPU
  • Apache Zeppelin — больше подходит для big data
  • Databricks — коммерческая платформа для команд

Практические кейсы и примеры

Положительные сценарии:

  • Прототипирование — быстрая проверка идей и алгоритмов
  • Анализ данных — исследование датасетов с визуализацией
  • Обучение — интерактивные туториалы и примеры
  • Документация — живые примеры кода в документах

Когда лучше не использовать:

  • Большие приложения — структура кода становится неуправляемой
  • Production код — сложно версионить и тестировать
  • Командная разработка — конфликты при слиянии изменений

Оптимизация и полезные расширения

Устанавливаем полезные расширения:

pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user
pip install jupyterlab-git

Для мониторинга ресурсов:

pip install jupyter-resource-usage

Автоматизация и интеграция

Jupyter отлично интегрируется с другими инструментами:

  • nbconvert — конвертация notebook в HTML, PDF, слайды
  • papermill — параметризация и выполнение notebook
  • voila — превращение notebook в веб-приложение
  • Git hooks — автоматическая очистка output перед коммитом

Пример автоматизации с papermill:

pip install papermill
papermill input.ipynb output.ipynb -p parameter_name parameter_value

Мониторинг и логирование

Для отслеживания использования ресурсов:

pip install psutil

Настройка логирования в конфигурации:

import logging
c.Application.log_level = logging.INFO
c.NotebookApp.log_format = '[%(name)s]%(highlevel)s %(message)s'

Интересные факты и нестандартные применения

  • Netflix использует Jupyter для аналитики в реальном времени
  • Kernel switching — можно переключаться между Python, R, Julia в одном notebook
  • Magic commands — %%time, %%bash, %%sql для различных задач
  • Widgets — интерактивные элементы интерфейса прямо в notebook

Пример использования магических команд:

%%time
# Измерение времени выполнения
import pandas as pd
df = pd.read_csv('large_file.csv')

%%bash
# Выполнение bash команд
ls -la /var/log/

Troubleshooting типичных проблем

  • Kernel died — обычно нехватка памяти или бесконечный цикл
  • Can’t connect to kernel — проблемы с портами или файрволом
  • ModuleNotFoundError — неправильное виртуальное окружение
  • Permission denied — проблемы с правами доступа к файлам

Статистика и сравнение производительности

По данным официального репозитория Jupyter:

  • Более 10 млн активных пользователей
  • Поддержка 40+ языков программирования
  • Время запуска kernel: Python ~2-3 сек, R ~5-7 сек
  • Потребление памяти: базовый Python kernel ~50MB

Заключение и рекомендации

Jupyter Notebook — мощный инструмент для интерактивной разработки, особенно в области data science. Правильная настройка на Ubuntu 24.04 открывает множество возможностей:

  • Для разработки — используй с виртуальными окружениями и версионированием
  • Для продакшена — обязательно настрой SSL и аутентификацию
  • Для команды — рассмотри JupyterHub для мультипользовательского доступа
  • Для автоматизации — интегрируй с papermill и CI/CD пайплайнами

Помни: Jupyter — это не замена IDE, а дополнительный инструмент для исследования данных и прототипирования. Используй его по назначению, и он значительно ускорит твою работу с данными и аналитикой.

При выборе между VPS и выделенным сервером для Jupyter, учитывай объём данных и количество пользователей — для личного использования достаточно небольшого VPS, а для командной работы лучше взять более мощное решение.


В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.

Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.

Leave a reply

Your email address will not be published. Required fields are marked