Разработка с Jupyter: примеры и настройка

Раздел: Инструменты -> Среды разработки

Обзор Jupyter Notebook

Основное решение для интерактивной разработки на Python - использование Jupyter Notebook. Это веб-приложение, позволяющее создавать и делиться документами, содержащими живой код, уравнения, визуализации и текст.

Как установить и запустить Jupyter Notebook?

Установка выполняется через pip:

pip install jupyter

Visual studio python библиотеки (visual studio и библиотеки python)

Затем запуск:

jupyter notebook

Giga ide python (giga ide для python)

Откроется интерфейс в браузере по адресу http://localhost:8888. Можно создать новый ноутбук (Python 3) и начать работу.

Типичные проблемы:

  • Ошибка "jupyter: command not found" - добавьте директорию Python Scripts в PATH.
  • Ноутбук не открывается. Проверьте, не занят ли порт 8888, используйте jupyter notebook --port 8889.

Как измерять время выполнения кода и отображать графики прямо в ноутбуке?

Магические команды: %timeit для замера времени, %matplotlib inline для встраивания графиков.

%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.plot(x, y)
plt.title('Синусоида')
plt.show()

Python idle linux (idle на linux)

[график отображается в ячейке]

Notebook python (jupyter notebook в python)

Также доступны %time, %prun для профилирования.

Возможные ошибки:

  • График не отображается. Убедитесь, что %matplotlib inline выполнен в отдельной ячейке перед импортом.
  • Использование %timeit с функциями, изменяющими состояние, может давать некорректные результаты из-за кэширования.

Как оформлять документацию и математические формулы в ноутбуке?

Ячейки Markdown позволяют форматировать текст, вставлять заголовки, списки, ссылки, а также LaTeX-формулы с помощью $...$ или $$...$$.

# Заголовок Markdown
Это **жирный** текст и *курсив*.

Формула Эйлера: $e^{i\pi}+1=0$

Более сложная формула:
$$ \int_{0}^{\infty} e^{-x^2} dx = \frac{\sqrt{\pi}}{2} $$

Jupiter notebook python (jupyter notebook с python)

Результат отобразится в виде отформатированного текста и формул.

Проблемы:

  • Формулы не отображаются. Проверьте, что ячейка выбрана как Markdown (не Code).
  • Синтаксическая ошибка LaTeX - используйте онлайн-проверку формул.

Как создавать интерактивные элементы управления (слайдеры, кнопки)?

Библиотека ipywidgets предоставляет виджеты, которые взаимодействуют с кодом.

import ipywidgets as widgets
from IPython.display import display

slider = widgets.FloatSlider(value=5.0, min=0, max=10, step=0.1)
display(slider)

def on_value_change(change):
    print(f'Новое значение: {change["new"]}')

slider.observe(on_value_change, names='value')

Spyder python ide (среда разработки spyder для python)

[отображается слайдер; при перемещении печатается значение]

Wing python ide (среда разработки wing для python)

Можно комбинировать виджеты для создания панелей управления.

Ошибки:

  • Виджеты не отображаются. Установите ipywidgets: pip install ipywidgets и выполните jupyter nbextension enable --py widgetsnbextension.
  • Проблемы с версиями. Используйте последнюю стабильную версию Jupyter.

Как обрабатывать большие наборы данных, не помещающиеся в оперативную память?

Библиотека Dask позволяет выполнять параллельные вычисления с массивами и датафреймами, которые превышают объём ОЗУ.

import dask.dataframe as dd

# Чтение большого CSV файла по частям
df = dd.read_csv('large_dataset.csv')
# Агрегация
result = df.groupby('category').value.sum().compute()
print(result)

Dask создаёт граф задач, выполняемых параллельно, используя несколько ядер или кластер.

Проблемы:

  • Ошибка "module not found" - установите dask: pip install dask[complete].
  • Неверное использование .compute() может привести к загрузке всех данных в память. Используйте чанки.
- Python idle windows (среда idle python на windows)

Расширенные примеры работы с Jupyter Notebook

Магические команды для отладки и профилирования

Команда %debug активирует отладчик после исключения. Пример:

Пример
def faulty_function(x):
    return 1 / x

try:
    faulty_function(0)
except:
    %debug
[открывается интерактивный отладчик, позволяющий исследовать стек]

Команда %lprun (из line_profiler) показывает время выполнения каждой строки функции. Установка: pip install line_profiler, затем загрузка расширения: %load_ext line_profiler.

Пример
%load_ext line_profiler
def my_func():
    a = [i**2 for i in range(1000)]
    b = sum(a)
    return b

%lprun -f my_func my_func()
[таблица с временем по строкам]

Создание интерактивного дашборда с виджетами

Совместное использование ipywidgets и matplotlib для обновления графика при изменении параметров.

Пример
import ipywidgets as widgets
import matplotlib.pyplot as plt
import numpy as np
from IPython.display import display

def plot_func(freq, amp):
    x = np.linspace(0, 2*np.pi, 100)
    y = amp * np.sin(freq * x)
    plt.figure()
    plt.plot(x, y)
    plt.title(f'freq={freq}, amp={amp}')
    plt.show()

freq_slider = widgets.FloatSlider(value=1, min=0.1, max=5, step=0.1, description='Частота')
amp_slider = widgets.FloatSlider(value=1, min=0.1, max=3, step=0.1, description='Амплитуда')

widgets.interactive(plot_func, freq=freq_slider, amp=amp_slider)
[отображаются два слайдера и график, обновляющийся при их изменении]

Конвертация ноутбука в другие форматы с помощью nbconvert

Команда jupyter nbconvert --to html notebook.ipynb создаёт HTML-версию. Можно конвертировать в PDF, LaTeX, Markdown, Python скрипт и др.

Пример
jupyter nbconvert --to script my_notebook.ipynb
[создаётся файл my_notebook.py с извлечённым кодом]

Для конвертации в PDF требуется LaTeX. Установка: pip install nbconvert[pdf].

Типичные ошибки:

  • Конвертация в PDF завершается ошибкой из-за отсутствия TeX-дистрибутива. Установите MiKTeX или TeX Live.
  • Кодировка символов: в HTML могут некорректно отображаться не-ASCII символы. Укажите кодировку в параметрах.

Использование расширений для повышения продуктивности

Расширения, такие как jupyter_contrib_nbextensions, добавляют оглавление, автодополнение кода, проверку орфографии и многое другое.

Пример
pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user

После установки в интерфейсе Jupyter появится вкладка Nbextensions, где можно активировать нужные модули.

[отображение панели конфигурации расширений]

Проблемы:

  • Некоторые расширения конфликтуют с другими. Отключайте по одному.
  • Не работает автодополнение. Проверьте, включено ли расширение Hinterland.

Удаленный доступ к Jupyter Notebook (на сервере)

Запуск на сервере с указанием IP и пароля для доступа из браузера по сети.

Пример
jupyter notebook --ip=0.0.0.0 --port=8888 --no-browser --NotebookApp.password=''

Для установки пароля:

Пример
from notebook.auth import passwd
passwd()
# введите пароль, скопируйте хеш и вставьте в конфигурацию

Затем используйте хеш в jupyter notebook --NotebookApp.password='sha1:...'.

Проблемы:

  • Доступ по сети блокируется брандмауэром. Откройте порт 8888.
  • Не рекомендуется использовать --ip=0.0.0.0 без аутентификации. Настройте SSL или используйте туннель SSH.

Jupyter Notebook в Python - comments

En
Notebook python (python)