Установка Jupyter Notebook (Linux)
This is Jupyter
Jupyter Notebook – это свободно распространяемый инструмент, позволяющий легко визуализировать и красиво представлять результаты выполнения частей кода, написанного на таких языках программирования как Python, Ruby и не только:
Особенности работы, интерфейс и основные понятия Jupiter рассмотрим после установки и первичной настройки.
Jupyter Notebook устанавливается на все основные настольные операционные системы. Представляет собой сервер, работа с которым осуществляется через браузер - соответственно обращаться к Jupiter можно с любого устройства внутри сети, в которой находится машина с работающим Jupiter, если его запуск правильно настроен. А как это сделать читаем ниже.
Установка и запуск
Единственной самой главной зависимостью Jupiter является наличие интерпретатора целевого языка программирования, в нашем случае - Питона - второго или третьего или обоих. Рассмотрим вариант для Python 3 так как прогресс не стоит на месте.На офф. сайте Jupiter предлагается два метода установки:
- через менеджер “Data Science”-пакетов Anaconda
- с помощью старого доброго pip’а - основного менеджера пакетов для Python
Рассмотрим вариант установки через pip, так как он более универсален.
Обновим информацию о репозиториях:
sudo apt update
Установим основные пакеты математических методов:
sudo apt install python3-matplotlib python3-scipy -y
pip как правило установлен по умолчанию, обновим его
sudo pip3 install --upgrade pip
Установка Jupiter и чистка кеша
sudo pip3 install jupyter
sudo apt clean -y
После установки выполним перезагрузку:
sudo reboot now
Так как Jupiter - серверное приложение, то для входа в него требуется аутентификация, настроим сразу вход по паролю (во время настройки через терминал вводимый пароль не будет отображаться даже звездочками - в Линуксе это нормально):
jupyter notebook --generate-config
jupyter notebook password

Переместимся в домашнюю папку - после запуска сервера текущая папка в интерфейсе Jupiter станет корневой и выше из нее нельзя будет переместиться:
cd ~
Чтоб иметь доступ к поднятому серверу с другим машин, при запуске необходимо указать IP-адрес машины и порт. (как узнать и зафиксировать IP см. Настройка статического IP адреса)
jupyter notebook --ip 192.168.1.111 --port 8888
А для доступа только с локальной машины запускаем командой
jupyter notebook
Сервер запущен. Чтоб открыть Jupiter с машины на которой он запущен вводим в адресной строке браузера http://localhost:8888/, а чтоб открыть интерфейс Jupiter с любого другого устройства внутри сети вводим http://192.168.1.111:8888 (соответственно заменяя IP-адрес на указанный при запуске)Вводим указанный в настройках пароль:

Если все сделано верно, то увидим следующее - это навигатор по директориям домашнего каталога (откуда через терминал был запущен Jupiter):

Основы работы в Jupiter и термины
Файлы в контексте Jupyter Notebook называются блокнотами (notebook) - их можно создавать, изменять, сохранять и передавать.Так как блокноты содержат в себе программный код, который исполняется при запуске блокнота - обращайте внимание на источник, если вы скачали чей то блокнот и собираетесь запустить.
При нажатии на кнопку “New” видим, что кроме ноутбуков можно создать обычные текстовые файлы, папки и открыть терминальное окно через браузер на том компьютере, на котором сейчас запущен Jupiter.
Создадим новый блокнот Python 3:

- строку меню (File, Edit ...)
- строку инструментов (удобнее пользоваться сочетаниями клавиш, справка по которым находится в Help > Keyboard Shortcuts), содержащую также выпадающий список выбора функции ячейки
- рабочую область - текстовое поле с голубой окантовкой (командный режим выделенной ячейки), пометкой “In [ ]”, которая будет содержать порядковый номер поля - это ячейка

В командном режиме можно перемещаться по ячейкам, манипулировать количеством, размещением и функциями ячеек. Перейдем в режим редактирования нажав Enter при выделенной ячейке.

В режиме редактирования рамка ячейки окрашивается в зеленый цвет и появляется приглашение для ввода. Так как функциональность ячейки определена для программного кода (“Code”), введем простейший Python-код и запустим его сочетанием клавиш Ctrl + Enter:

После запуска ячейки режим редактирования сменяется на командный, еще этого можно достичь нажав Esc.
Находясь в командном режиме при выделенной ячейке нажмем “B” - это создаст новую ячейку под выделенной (below)

Рассмотрим другую функцию ячейки - Markdown - в такой ячейке можно рендерить отформатированный текст, формулы и графику. Попробуем вывести изображение. Это делается командой

При этом можно опробовать функцию дописывания команд по нажатию Tab:

Чтоб ячейка заработала правильно и вывела изображение необходимо сменить ее тип с Code на Markdown. При выделенной ячейке в командном режиме это можно сделать клавишей “M” (возврат в Code - “Y”) или через выпадающий список в строке инструментов:

Запускаем выполнение ячейки:

Со всеми аспектами и возможностями разметки Markdown можно познакомиться здесь.
В Code-ячейке можно выполнять любые терминальные команды если начинать строку с восклицательного знака, даже посмотреть системный лог:

Для самых распространенных действий в Jupiter существуют так называемые “магические” команды. Они начинаются с символа “%”, их полный список можно вывести в ячейке кода командой
%lsmagic
Спектр их весьма широк - от работы с файловой системой до удобной отладки и структурирования кода:

Вот к примеру в Python-блокноте можно выполнить код на Ruby командой
%%ruby
(естественно интерпретатор Ruby должен быть установлен в системе на которой запущен Jupiter)

Документацию по всем “магическим” командам можно почитать здесь на английском языке.
Вот все основы и принципы работы в Jupiter Notebook. Со всеми мелочами, аспектами и подводными камнями проще разбираться уже на конкретных примерах (в последующих статьях).
Не забывайте сохраняться!