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-туннель в:
- Mac или Linux
- 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.