Jupyter Notebook: установка, запуск и работа с ячейками

Разработчик за столом смотрит на браузер, где в блокноте под ячейкой кода построен график Программное обеспечение

Чтобы установить Jupyter Notebook, хватит одной команды pip install notebook, а запустить его можно командой jupyter notebook: в браузере откроется список файлов. В блокноте код пишут ячейками и выполняют по одной, результат сразу видно под каждой. Код, вывод, таблицы и графики сохраняются вместе в одном файле .ipynb.

Команды и примеры проверены на Jupyter Notebook 7.6.3 и Python 3.14.3 в Windows 10. Седьмая версия собрана на компонентах JupyterLab, и её меню не совпадают с инструкциями к Notebook 6.

Разработчик за столом смотрит на браузер, где в блокноте под ячейкой кода построен график

Что такое Jupyter Notebook

Это интерактивное веб-приложение: на локальной машине работает сервер Jupyter, а вы открываете его в браузере. Блокнот (по-английски notebook, в разговоре «ноутбук») хранится в файле .ipynb. Внутри обычный JSON, где лежат ячейки с исходным кодом, Markdown-текстом и результатами выполнения. Выполнение кода берёт на себя ядро (kernel), отдельный процесс языка. Для Python это ipykernel, оно ставится вместе с Notebook. Ядра есть больше чем для 40 языков программирования, в том числе R, Julia и Scala.

Удобно это там, где код пишут маленькими шагами и хотят сразу видеть результат: таблицы pandas, графики, учебные задачи. Под кодом можно вывести таблицу, картинку, HTML или формулу. Для большого проекта с модулями и тестами лучше IDE, а блокнот держать рядом как лабораторный журнал.

Установка Jupyter Notebook через pip

Сначала нужно установить Python 3. Проверьте версию командой python --version (в Linux и macOS python3 --version). Ставить пакеты лучше не в системный Python, а в виртуальное окружение проекта:

mkdir notebooks
cd notebooks
python -m venv .venv
source .venv/Scripts/activate
python -m pip install notebook

Четвёртая строка написана для Git Bash в Windows. В cmd окружение активирует .venv\Scripts\activate.bat, в PowerShell .venv\Scripts\Activate.ps1, в Linux и macOS source .venv/bin/activate. Если PowerShell отказывается запускать скрипт активации, решение разобрано в статье про ModuleNotFoundError и виртуальные окружения.

Терминал на экране ноутбука, по которому бегут строки установки пакетов

Вместе с зависимостями в чистом окружении оказалось 92 пакета по pip list, считая сам pip. Последняя строка установки заканчивалась так (список сокращён):

Successfully installed ... ipykernel-7.4.0 ... jupyterlab-4.6.4 ... notebook-7.6.3 ...

Проверка версии:

jupyter notebook --version
7.6.3

В других инструкциях встречается pip install jupyter. Это метапакет: кроме Notebook он ставит JupyterLab, консоль jupyter-console, nbconvert, ipykernel и виджеты ipywidgets. Для начала хватит notebook: JupyterLab всё равно приедет зависимостью.

Если после установки команда не находится, окружение не активировано. В cmd это выглядит так:

"jupyter" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

PowerShell пишет «Имя «jupyter» не распознано как имя командлета». Активируйте .venv или запустите сервер интерпретатором окружения по полному пути: .venv\Scripts\python -m notebook в Windows, .venv/bin/python -m notebook в Linux и macOS. Просто python -m notebook без активации вызовет системный Python, и он ответит No module named notebook.

Через Anaconda

Дистрибутив Anaconda ставит conda, Python, графический Anaconda Navigator и больше 600 пакетов для анализа данных, Jupyter запускается из Navigator. Цена вопроса около 9,7 ГБ на диске. Miniconda занимает около 900 МБ, но в ней только conda и Python, без лишних пакетов и без графического интерфейса. Если вам нужны только блокноты, venv и pip проще и легче; Anaconda имеет смысл, когда вы и так работаете в conda.

Читайте также:  Что такое Docker

Как запустить Jupyter Notebook

Перейдите в папку проекта, активируйте окружение и выполните:

jupyter notebook

Сервер покажет, где работает, и откроет браузер со списком файлов той папки, из которой вы запустили команду. Вот часть лога нашего запуска командой jupyter notebook --no-browser --port=8917 (токен заменён):

[I 2026-10-09 18:58:46.875 ServerApp] Jupyter Server 2.21.1 is running at:
[I 2026-10-09 18:58:46.875 ServerApp] http://localhost:8917/tree?token=...
[I 2026-10-09 18:58:46.875 ServerApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).

По умолчанию первый сервер занимает порт 8888, следующие ищут свободный рядом. Полезные параметры:

  • jupyter notebook --port=8917 запускает сервер на заданном порту;
  • jupyter notebook --no-browser не открывает браузер, ссылку с токеном берёте из терминала;
  • jupyter notebook analiz.ipynb сразу открывает нужный блокнот.

Список работающих серверов со ссылками показывает jupyter notebook list. Остановить сервер можно сочетанием Ctrl+C в терминале или пунктом File → Shut Down в браузере. Есть и jupyter notebook stop 8917: в нашем прогоне она напечатала «Could not stop server on 8917», хотя сервер при этом завершился, так что после неё проверьте jupyter notebook list.

Если закрыть только вкладку браузера, ядро продолжит работать, а при повторном открытии блокнот подключится к нему же. Ядра, которые больше не нужны, гасят через Kernel → Shut Down Kernel.

Первый блокнот и ячейки кода

На странице файлов нажмите New и выберите Python 3 (ipykernel). Блокнот откроется в отдельной вкладке, имя меняется щелчком по заголовку вверху.

Страница файлов Jupyter Notebook 7.6.3 с раскрытым меню New: Python 3 (ipykernel), Terminal, Console, New File, New Folder

Напишите код в первой ячейке и нажмите Shift+Enter:

name = "Jupyter"
print("Привет,", name)
len(name) * 2
Привет, Jupyter
14

Первую строку вывода напечатал print. Число 14 Jupyter показал сам: по умолчанию ядро выводит значение последнего выражения ячейки в поле [1]:. Цифра в скобках показывает, каким по счёту ядро выполнило эту ячейку.

Следующий код стоит запомнить: он показывает, каким интерпретатором работает ядро.

import sys
sys.executable
'C:\\projects\\notebooks\\.venv\\Scripts\\python.exe'

Путь ведёт в .venv, значит, пакеты надо ставить именно туда. Проще всего это сделать из самого блокнота магической командой %pip, она ставит пакет в окружение текущего ядра:

%pip install pandas matplotlib
Successfully installed contourpy-1.4.0 cycler-0.12.1 fonttools-4.66.1 kiwisolver-1.5.1 matplotlib-3.11.2 numpy-2.5.3 pandas-3.0.6 pillow-12.3.0 pyparsing-3.3.3
Note: you may need to restart the kernel to use updated packages.

Jupyter предупреждает, что после установки может понадобиться перезапуск ядра: Kernel → Restart Kernel… или 0, 0 в командном режиме. Пакеты, которые в этом ядре ещё не импортировали, у нас импортировались и без перезапуска.

Пример: таблица pandas и график

Результат не обязательно текст. DataFrame Jupyter рисует HTML-таблицей:

import pandas as pd

df = pd.DataFrame({
    "день": ["пн", "вт", "ср", "чт", "пт"],
    "задачи": [3, 5, 2, 6, 4],
})
df

Блокнот в Jupyter Notebook 7.6.3: ячейка с DataFrame и под ней таблица из пяти строк, ниже ячейка с кодом графика

Среднее по столбцу:

df["задачи"].mean()
np.float64(4.0)

Так с версии 2.0 выглядит число NumPy, когда Jupyter показывает его как значение выражения. print(df["задачи"].mean()) напечатает просто 4.0.

График строится в той же манере, plt.show() в блокноте не нужен:

import matplotlib.pyplot as plt

plt.plot(df["день"], df["задачи"], marker="o")
plt.title("Решено задач за неделю");

Точка с запятой в конце убирает лишнюю строку. Без неё над картинкой появится Text(0.5, 1.0, 'Решено задач за неделю'): это значение последнего выражения, объект заголовка. Подробнее про подписи, оси и сохранение в файл есть в статье о том, как строить графики в matplotlib.

Типы ячеек: Code, Markdown и Raw

Тип выбирают в выпадающем списке на панели инструментов или клавишами. Code содержит код, его выполняет ядро. Ячейка Markdown превращается в форматированный текст: заголовки, списки, жирный шрифт, ссылки и формулы LaTeX между $...$ (в строке) или $$...$$ (отдельной строкой). Ячейку Raw блокнот не выполняет.

Читайте также:  VS Code для Python: установка и настройка пошагово

Исходник Markdown-ячейки из нашего примера:

## Итоги недели

В среднем решали **4 задачи** в день.

- лучший день: четверг
- худший день: среда

Среднее считается так: $\bar{x} = \frac{1}{n}\sum_{i=1}^{n} x_i$

После Shift+Enter вместо разметки появляется текст с формулой.

Jupyter Notebook 7.6.3: под ячейкой построен линейный график по дням недели, ниже отрисована Markdown-ячейка с заголовком, списком и формулой среднего

Командный режим и режим редактирования

У блокнота два режима. Если клавиша ведёт себя не так, как в таблице ниже, сначала проверьте, в каком вы режиме.

В режиме редактирования курсор стоит внутри поля ввода, и клавиши печатают текст. Войти в него можно клавишей Enter на выбранной ячейке или щелчком по полю ввода. Командный режим включается клавишей Esc: курсора в ячейке нет, а буквы работают как команды для ячеек целиком. Нажали B, чтобы добавить ячейку, а в коде появилась буква «b»? Значит, вы были в режиме редактирования.

Меню Cell, которое упоминают старые инструкции, в Notebook 7 нет: запуск ячеек переехал в меню Run, операции с ячейками в Edit, перезапуск ядра в Kernel.

Горячие клавиши Jupyter Notebook

Сочетания сняты с меню и схемы сочетаний Notebook 7.6.3 в Windows, каждое из таблицы мы нажали в браузере; из цифр 1-6 проверена только 3. По схеме сочетаний на macOS в Ctrl+Enter, Ctrl+S, Ctrl+Shift+C и Ctrl+Shift+H вместо Ctrl используется Cmd, а Ctrl+Shift+- остаётся с Ctrl; на Mac мы это не проверяли.

Клавиши Режим Что делает
Shift+Enter любой выполнить ячейку и перейти к следующей
Ctrl+Enter любой выполнить и остаться на ячейке
Alt+Enter любой выполнить и вставить новую ячейку ниже
Esc редактирование перейти в командный режим
Enter командный перейти в режим редактирования
A / B командный новая ячейка выше / ниже
M / Y / R командный сделать ячейку Markdown / кодом / Raw
1-6 командный, Markdown-ячейка заголовок уровня 1-6
D, D командный удалить ячейку
Z командный отменить действие с ячейкой
X / C / V командный вырезать / копировать / вставить ниже
Shift+M командный объединить выделенные ячейки
Ctrl+Shift+- редактирование разделить ячейку по курсору
I, I командный прервать выполнение
0, 0 командный перезапустить ядро
Shift+L командный номера строк
Ctrl+S любой сохранить и создать контрольную точку
Ctrl+Shift+C любой палитра команд
Ctrl+Shift+H любой список всех сочетаний

Запись «D, D» значит: нажать D дважды подряд. Удалённую ячейку возвращает Z в командном режиме.

Крупный план рук на клавиатуре ноутбука, пальцы на Shift и Enter, на экране размытый блокнот с ячейками

Порядок выполнения и скрытое состояние

Ядро хранит переменные в том состоянии, в каком их оставили ячейки, в порядке нажатия Shift+Enter, а не в том, как ячейки стоят на странице. Проверьте сами. В первой ячейке:

x = 10

Во второй:

x = x + 5
x

Первый запуск этого кода дал [3]: 15, повторный [4]: 20.

Обратная ситуация: ячейка использует переменную, которая определена ниже.

print(total)
total = 42

Если сначала выполнить вторую ячейку, а потом первую, всё напечатается. Запуск блокнота целиком сверху вниз падает:

NameError: name 'total' is not defined

Перед тем как отдать блокнот коллеге или закоммитить, мы бы выполнили Kernel → Restart Kernel and Run All Cells… и дождались конца без ошибок. Jupyter переспросит: «Restart Kernel? … All variables will be lost.» После перезапуска счётчики начнутся с [1], а x снова будет 15. Из терминала то же самое проверяет jupyter execute analiz.ipynb: команда выполняет блокнот в новом ядре и на первой ошибке печатает ячейку и текст исключения.

Магические команды

Строки с % в начале обрабатывает IPython, на котором работает ядро Python в Jupyter; такие строки называют магическими командами. %pip уже встречалась выше. Вторая полезная команда меряет скорость:

%timeit sum(range(1000))
10.3 μs ± 216 ns per loop (mean ± std. dev. of 7 runs, 100,000 loops each)

Цифры зависят от компьютера. В выводе среднее время одного вызова и стандартное отклонение по 7 сериям, в каждой 100 000 запусков.

Ядро из другого окружения

Notebook стоит в одном venv, а проект живёт в другом? Не обязательно устанавливать Jupyter в каждое окружение. Достаточно ipykernel в окружении проекта и регистрации ядра:

python -m pip install ipykernel
python -m ipykernel install --user --name proekt --display-name "Python (proekt)"

Команды выполняются в активированном окружении проекта. В меню New и Kernel → Change Kernel… ядро появится под именем из --display-name. sys.executable на таком ядре показал ...\proekt\Scripts\python.exe. Ядро с тем же --name перезаписывается, список ядер выводит jupyter kernelspec list, удаляет jupyter kernelspec uninstall proekt.

Сохранение и экспорт блокнота

Ctrl+S сохраняет файл и создаёт контрольную точку, к которой можно откатиться пунктом Revert Notebook to Checkpoint… в меню File. Экспорт находится в File → Save and Export Notebook As: HTML, LaTeX, Markdown, PDF, Executable Script (.py) и другие форматы. Тот же конвертер работает из терминала:

jupyter nbconvert --to html analiz.ipynb
jupyter nbconvert --to script analiz.ipynb

В .py ячейки кода идут подряд с метками # In[1]:, а Markdown превращается в комментарии. PDF мы не проверяли: по документации nbconvert для него нужен установленный LaTeX (XeLaTeX), а вариант Webpdf требует Chromium из пакета nbconvert[webpdf].

Ноутбук на рабочем столе, на экране слева размытый блокнот с графиком, справа окно сравнения изменений файлов

Выводы ячеек хранятся внутри .ipynb, графики лежат там длинными строками base64 и попадают в диффы. Наш блокнот с одной таблицей и одним графиком весил 36 717 байт, а после очистки выводов 2 149. Перед коммитом в Git выводы лучше убрать: Edit → Clear Outputs of All Cells или командой

jupyter nbconvert --clear-output --inplace analiz.ipynb

Jupyter Notebook, JupyterLab и Google Colab

Jupyter Notebook 7 JupyterLab Google Colab
Где работает ваш компьютер или сервер ваш компьютер или сервер облако, без установки
Интерфейс один блокнот на вкладку браузера блокноты, терминалы, редакторы рядом во вкладках и панелях блокнот в браузере
Файлы .ipynb на диске тот же формат .ipynb Google Drive или GitHub
Ограничения ресурсы своей машины ресурсы своей машины машину удаляют при простое, бесплатный блокнот работает не больше 12 часов
Читайте также:  VS Code для Python: установка и настройка пошагово

Notebook 7 и JupyterLab построены на одних компонентах и открывают одни и те же файлы. JupyterLab ставится вместе с Notebook, поэтому переключиться можно без установки: кнопка JupyterLab на панели блокнота или команда jupyter lab. Colab работает как бесплатный сервис Google на базе Jupyter, но код выполняется на временной виртуальной машине, а в блокнот стоит добавить ячейки, которые ставят и загружают нужные библиотеки. Блокноты умеет открывать и VS Code через расширение Jupyter, настройка описана в статье VS Code для Python.

Частые вопросы

Как открыть Jupyter Notebook в нужной папке?

Перейдите в неё в терминале командой cd и запустите jupyter notebook. Сервер показывает папку запуска и всё, что внутри неё. Чтобы сразу открыть файл, передайте его имя: jupyter notebook analiz.ipynb.

Пакет установлен, а import пишет ModuleNotFoundError. Почему?

Проверьте, тем ли Python работает ядро: выполните в блокноте import sys; sys.executable. Ставьте пакет через %pip install имя_пакета прямо из ячейки: так он попадёт в окружение текущего ядра.

Можно ли пользоваться Jupyter Notebook онлайн без установки?

Да, через Google Colab: ставить ничего не нужно, блокноты сохраняются на Google Drive. Учтите, что виртуальную машину удаляют после простоя, и пакеты, поставленные вручную, придётся ставить заново.

Где скачать Jupyter Notebook?

Отдельный установщик не нужен: Notebook ставится как пакет Python командой pip install notebook или приходит в составе Anaconda. Для тренировки в первом блокноте подойдут задачи по Python для начинающих: каждую удобно решать в отдельной ячейке.

Что будет, если закрыть вкладку браузера?

Ядро продолжит работать, переменные сохранятся. Откройте блокнот снова из списка файлов, и он подключится к тому же ядру. Сервер останавливают Ctrl+C в терминале или File → Shut Down.

Оцените статью
bestprogrammer.ru
Добавить комментарий