Как настроить Jupyter Notebook для Python 3

Jupyter Notebook — это командная оболочка для интерактивных вычислений. Этот инструмент может использоваться не только с Python, но и другими языками программирования: Julia, R, Haskell и Ruby. Он часто используется для работы с данными, статистическим моделированием и машинным обучением.

В статье мы рассмотрим, как настроить Jupyter Notebook для локального запуска или запуска на сервере под управлением Ubuntu 16.04. Этот инструмент поможет создавать файлы (notebooks), которые содержат не только компьютерный код, но и другие элементы (заметки, уравнения, диаграммы, ссылки и т.д.), которыми можно потом поделиться с заказчиками или друзьями.

После прочтения этой статьи вы будете знать, как запускать код Python 3 при помощи Jupyter Notebook локально или на удалённом сервере.

Требования

Нам понадобится среда программирования для Python 3, установленная либо на локальной машине, либо на сервере Ubuntu 16.04.

Шаг 1. Установка Jupyter Notebook

Jupyter Notebook можно установить при помощи пакетного менеджера pip.

В статье будет использоваться виртуальное окружение с именем my_env. Для установки пакета для работы с виртуальным окружением введите следующую команду в терминале:

$ sudo apt-get install -y python3-venv

Теперь мы готовы создать виртуальное окружение. Выбираем каталог, в который все будет установлено, или создаем новый каталог с mkdir:

$ mkdir environments
$ cd environments

Как только вы переместитесь в нужную вам директорию, введите следующую команду в терминал:

$ pyvenv my_env

По сути, pyvenv создает новый каталог, содержащий несколько элементов, которые мы можем просмотреть с помощью команды ls:

$ ls my_env
Output
bin include lib lib64 pyvenv.cfg share

Для активации виртуального окружения вам осталось ввести последнюю команду:

$ source my_env/bin/activate

Затем нужно убедиться, что pip был обновлен до последней версии:

(my_env) sammy@ubuntu:~/environments$ pip3 install --upgrade pip

Теперь можно установить Jupyter Notebook следующей командой:

(my_env) sammy@ubuntu:~/environments$ pip3 install jupyter

После этой строчки кода Jupyter Notebook будет установлен в активное виртуальное окружение.

Следующий шаг предназначен для тех, кто хочет подключиться к веб-интерфейсу, используя SSH-туннелирование.

Шаг 2 (необязательный). Запуск Jupiter Notebook на сервере

Для тех, кто установил Jupyter Notebook на удаленный сервер, нужно подключаться к веб-интерфейсу через SSH-туннель. Приложение использует порт 8888 (или же 8889), а SSH-туннель поможет обезопасить соединение с сервером.

SSH-туннелирование с помощью Mac или Linux

Для тех, кто работает с macOS или Linux, нужно выполнить следующую команду в окне терминала:

$ ssh -L 8888:localhost:8888 your_server_username@your_server_ip

Команда ssh создаст SSH-подключение, а флаг –L перенаправит порт локального или клиентского хоста на хост и порт уделенного сервера. То есть все, что работает на порте 8888 с серверной стороны, будет работать на порте 8888 вашей локальной машины.

При необходимости можно изменить порт 8888 на один из ваших вариантов, чтобы избежать использования порта, который уже используется другим процессом:

  • server_username — имя пользователя на сервере (например, sammy);
  • your_server_ip — это IP-адрес сервера.

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

$ ssh -L 8888:localhost:8888 sammy@203.0.113.0

Если после запуска команды ssh -L не появляется ошибка, можно переходить в среду программирования и запустить Jupyter Notebook:

(my_env) sammy@ubuntu:~/environments$ jupyter notebook

После этого, вы получите результат содержащий URL-адрес. Введите его в окне браузера и перейдите к веб-интерфейсу Jupyter Notebook (http://localhost:8888).

SSH-туннелирование с помощью Windows и Putty

Пользователи Windows могут создать туннель SSH, используя программу Putty.

Сначала нужно ввести URL-адрес сервера или IP-адрес имени хоста, как показано ниже на скриншоте:

Далее нажимаем SSH внизу левой панели, для раскрытия полного меню и нажимаем на слово Tunnels (туннели). Вводим номер локального порта, который будет использоваться для доступа к Jupyter на локальном компьютере. Выбираем порт 8000 или выше, чтобы избежать совпадения портов, используемых другими службами, и указываем назначение как localhost: 8888, где: 8888 — это номер порта, через который работает Jupyter Notebook.

Теперь нажмите кнопку Add (добавить), и порты должны появиться в списке Forwarded ports (Переадресованные порты):

И после этого переходим по адресу http://localhost:8000 (или любым другим портом, который вы выбрали) в веб-браузере, чтобы подключиться к Jupyter Notebook, работающему на сервере.

Шаг 3. Запуск Jupyter Notebook локально

После окончания установки Jupyter Notebook можно запустить при помощи следующей команды в терминале:

(my_env) sammy@ubuntu:~/environments$ jupyter notebook

В терминале выведутся логи Jupyter Notebook. При запуске инструмент использует определенный порт. Обычно это 8888. Для проверки порта, с которым работает Jupyter Notebook, используйте команду, при помощи которой запускался Jupyter Notebook:

Output
[I NotebookApp] Serving notebooks from local directory: /home/sammy
[I NotebookApp] 0 active kernels 
[I NotebookApp] The Jupyter Notebook is running at: http://localhost:8888/
[I NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
...

Если вы используете Jupyter Notebook на локальном компьютере, а не на сервере, то при открытии веб-приложения Jupyter Notebook должен открыться ваш браузер по умолчанию. Если этого не произошло, можно открыть браузер вручную и перейти к http://localhost: 8888 для подключения.

Если нужно остановить процессы Jupyter Notebook, то нажмите CTRL + C, а потом Y при появлении запроса на закрытие и ENTER для подтверждения.

Вы получите следующий результат:

Output
[C 12:32:23.792 NotebookApp] Shutdown confirmed
[I 12:32:23.794 NotebookApp] Shutting down kernels

Jupyter Notebook остановлен.

Шаг 4. Использование Jupyter Notebook

Пришло время начать использование Jupyter Notebook.

Теперь можно подключиться к нему с помощью веб-браузера. Jupyter Notebook — очень мощный инструмент и имеет множество функций. В этом разделе описываются некоторые основные функции, позволяющие начать работу с ним. Jupyter Notebook покажет все файлы и папки в каталоге, из которого он запущен, поэтому, когда начинается работа над проектом, обязательно нужно запускать его из каталога проекта.

Чтобы создать документ выбираем New → Python 3 в верхнем выпадающем меню:

После открытия документа можно запускать код Python в ячейке или использовать язык разметки Markdown. Чтобы изменить первую ячейку для работы с Markdown, нужно нажать в верхней панели навигации Cell → Cell Type → Markdown. Теперь можно создавать заметки с использованием Markdown и даже включать уравнения, написанные в LaTeX, помещая их между символами $$. Например, попробуем ввести следующую команду в ячейку после включения Markdown:

# Simple Equation

Let us now implement the following equation:
$$ y = x^2$$

where $x = 2$

Чтобы переформатировать Markdown в форматированный текст, нажимаем CTRL + ENTER и получаем следующие результаты:

Также можно использовать ячейки Markdown для написания кода. Для теста напишем небольшое уравнение и выведем результат. Нажимаем на верхнюю ячейку, нажимаем ALT+ENTER для создания ячейки под ней и вводим следующий код в новую ячейку:

x = 2
y = x**2
print(y)

Чтобы запустить код, нажимаем CTRL + ENTER и получаем следующие результаты:

Теперь у вас есть возможность импортировать модули и использовать Jupyter Notebook так же, как и в любой другой среде разработки Python!

Вывод

Поздравляем! Теперь вы можете написать воспроизводимый код Python и заметки в Markdown с помощью Jupyter Notebook. Для получения справки по использованию Jupyter Notebook нажмите Help → User Interface Tour в главном меню навигации.

Перевод статьи «How To Set Up Jupyter Notebook for Python 3»