Настройка Jupyter Notebook для поддержки IPython в Ubuntu 16.04

IPython – это интерактивный интерфейс командной строки для Python. Jupyter Notebook предлагает интерактивный веб-интерфейс для многих языков, в том числе и для IPython.

Данное руководство поможет настроить и использовать Jupyter Notebook. Jupyter позволяет создавать документы, объединяющие код и текст (абзацы, уравнения, цифры, ссылки и т.д.), которые помогают в представлении воспроизводимых исследований.

Примечание: Руководство выполнено на Python 2 (2.7.x), поскольку большинство высокопроизводительных вычислительных библиотек поддерживают 2.7, а не 3.0+.

Требования

  • Сервер Ubuntu 16.04.
  • Не-root пользователь с доступом к sudo (все команды руководства нужно выполнять в сессии этого пользователя, если не указано другое).

1: Установка Python 2.7 и pip

Обновите индекс пакетов системы, чтобы исключить устаревшие пакеты:

sudo apt-get update

Теперь можно установить Python 2.7, менеджер пакетов pip и Python Development:

sudo apt-get -y install python2.7 python-pip python-dev

Возможно, некоторые зависимости Jupyter придётся компилировать. Для этого предназначен только что установленный пакет python-dev.

Убедитесь, что установка Python прошла успешно:

python --version
Python 2.7.11+

Чтобы убедиться, что установка pip прошла успешно, введите:

pip --version
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)

Примечание: Версии программ могут отличаться.

2: Установка IPython и Jupyter Notebook

Чтобы установить IPython, введите:

sudo apt-get -y install ipython ipython-notebook

Теперь можно установить Jupyter Notebook:

sudo -H pip install jupyter

В зависимости от версии pip, которая находится в репозитории apt, во время установки может возникнуть такая ошибка:

You are using pip version 8.1.1, however version 8.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

В таком случае нужно обновить pip:

sudo -H pip install --upgrade pip

После этого попробуйте повторить запуск установки Jupyter:

sudo -H pip install jupyter

3: Запуск Jupyter Notebook

Итак, теперь окружение полностью готово к запуску Jupyter Notebook. Для этого используется команда:

jupyter notebook

Если в системе установлен JavaScript, Jupyter может вернуть такую ошибку:

Jupyter Notebook requires JavaScript.
Please enable it to proceed.
...

Эту ошибку можно проигнорировать. Для этого нажмите Q и Y.

Лог Jupyter Notebook будет выведен в терминал. При каждом запуске Jupyter Notebook использует новый порт. Как правило, при первом запуске используется порт 8888. Вы можете узнать номер порта, который использует Jupyter Notebook:

[I NotebookApp] Serving notebooks from local directory: /home/8host
[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 на локальной машине Linux (а не на удалённом сервере), просто откройте localhost:8888, чтобы подключиться к Jupyter Notebook. Если вы запустили Jupyter Notebook на удалённом сервере, создайте SSH-туннель (раздел 4).

Вы можете оставить текущее SSH-подключение, а можете остановить приложение и перезапустить его после того, как туннель будет создан. Для простоты работы рекомендуется остановить приложение и включить его позже. Для этого нажмите CTRL+C, Y и ENTER. На экране появится:

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

4: Создание SSH-туннеля

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

Ниже описано, как создать SSH-туннель в:

  1. Mac или Linux
  2. Windows

Пожалуйста, следуйте инструкциям соответствующего раздела согласно используемой ОС.

SSH-туннелирование в Mac и Linux

Чтобы создать SSH-туннель, введите:

ssh -L 8000:localhost:8888 your_server_username@your_server_ip

  • Команда ssh открывает SSH-подключение.
  • Флаг –L указывает, что заданный порт на локальном хосте (клиенте) должен быть направлен к заданному хосту и порту на удаленном сервере. То есть, всё, что запущено на порт 8888 на удалённом сервере, появится на порте 8000 на локальной машине.

Примечание: Замените 8888 номером порта, на котором работает Jupyter.

При желании 8000 можно заменить другим номером порта (к примеру, если этот порт уже занят).

  • server_username – имя пользователя удалённого сервера (например, 8host).
  • your_server_ip – IP-адрес удалённого сервера.

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

ssh -L 8000:localhost:8888 8host@111.111.111.111

Примечание: Замените условные данные в команде.

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

jupyter notebook

На локальной машине запустите браузер и откройте интерфейс Jupyter Notebook:

localhost

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

В поле Host Name (or IP address) введите IP-адрес сервера. В поле Saved Session укажите сессию сервера.

Нажмите SSH в левом меню. Затем нажмите Tunnels. Укажите номер локального порта для подключения Jupyter (например, 8000, 8001 и т.д.). В качестве целевого порта укажите localhost:8888 (где 8888 – номер порта Jupyter Notebook). Нажмите Add, и порты появятся в списке Forwarded ports.

Нажмите Open, чтобы подключиться к серверу при помощи SSH-туннеля. Чтобы получить доступ к веб-интерфейсу Jupyter Notebook, откройте в браузере:

http://localhost:8000

5: Использование Jupyter Notebook

Данный раздел охватывает только основы работы с Jupyter Notebook.

Jupyter Notebook – очень производительное приложение с большим количеством полезных функций.

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

Это откроет новый документ. Теперь можно запустить код 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, и вы получите:

Simple Equation
Let us now implement the following equation in Pyton:
y=x2
and print the result where x = 2

Вы можете использовать ячейки markdown для записей и написания кода. Попробуйте решить простое уравнение и получить результат на экране. Выберите Insert → Insert Cell Below, чтобы добавить новую ячейку, и введите следующий код:

x = 2
y = x*x
print y

Чтобы запустить код, нажмите CTRL+ENTER. На экране появится:

Simple Equation
Let us now implement the following equation in Pyton:
y=x2
and print the result where x = 2
In [1]: x = 2
y = x*x
print y
4

Заключение

Теперь вы можете использовать Jupyter, чтобы писать воспроизводимый код Python и заметки в markdown. Чтобы получить быструю справку по Jupyter, выберите Help → User Interface Tour.

Tags: , , ,

Добавить комментарий