Поиск по сайту:

Как настроить ноутбук Jupyter для запуска IPython в Ubuntu 16.04


Введение

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

Эта статья проведет вас через настройку сервера для запуска Jupyter Notebook, а также научит вас подключаться к блокноту и использовать его. Блокноты Jupyter (или просто блокноты) — это документы, созданные приложением Jupyter Notebook, которые содержат как компьютерный код (например, Python), так и элементы форматированного текста (абзацы, уравнения, рисунки, ссылки и т. д.), которые помогают представить воспроизводимые исследования.

К концу этого руководства вы сможете запускать код Python 2.7, используя Ipython и Jupyter Notebook, работающие на удаленном сервере. Для целей этого руководства используется Python 2 (2.7.x), поскольку многие библиотеки обработки данных, научных вычислений и высокопроизводительных вычислений поддерживают версию 2.7, а не 3.0+.

Предпосылки

Чтобы следовать этому руководству, вам понадобится следующее:

  • Дроплет Ubuntu 16.04
  • Пользователь без полномочий root с привилегиями sudo (начальная настройка сервера с Ubuntu 16.04 объясняет, как это настроить).

Все команды в этом руководстве должны выполняться от имени пользователя без полномочий root. Если для команды требуется root-доступ, ей будет предшествовать sudo. Начальная настройка сервера с Ubuntu 16.04 объясняет, как добавить пользователей и предоставить им доступ sudo.

Шаг 1 — Установка Python 2.7 и Pip

В этом разделе мы установим Python 2.7 и Pip.

Во-первых, обновите системный индекс пакетов. Это гарантирует, что старые или устаревшие пакеты не будут мешать установке.

  1. sudo apt-get update

Затем установите Python 2.7, Python Pip и Python Development:

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

Установка python2.7 приведет к обновлению до последней версии Python 2.7, а python-pip установит Pip, что позволит нам управлять пакетами Python, которые мы хотели бы использовать. Для некоторых зависимостей Jupyter может потребоваться компиляция, и в этом случае вам понадобится возможность компилировать C-расширения Python, поэтому мы также устанавливаем python-dev.

Чтобы убедиться, что у вас установлен Python:

  1. python --version

Это выведет:

Output
Python 2.7.11+

В зависимости от последней версии Python 2.7 вывод может отличаться.

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

  1. pip --version

Вы должны что-то похожее на следующее:

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

Точно так же в зависимости от вашей версии pip вывод может немного отличаться.

Шаг 2 — Установка Ipython и Jupyter Notebook

В этом разделе мы установим Ipython и Jupyter Notebook.

Сначала установите Ipython:

  1. sudo apt-get -y install ipython ipython-notebook

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

  1. sudo -H pip install jupyter

В зависимости от того, какая версия pip находится в репозитории Ubuntu apt-get, вы можете получить следующую ошибку при попытке установить Jupyter:

Output
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 для обновления pip до последней версии:

  1. sudo -H pip install --upgrade pip

Обновите pip, а затем попробуйте снова установить Jupyter:

  1. sudo -H pip install jupyter

Шаг 3 — Запуск Jupyter Notebook

Теперь у вас есть все необходимое для запуска Jupyter Notebook! Чтобы запустить его, выполните следующую команду:

  1. jupyter notebook

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

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

Чтобы игнорировать ошибку, вы можете нажать Q, а затем нажать Y для подтверждения.

Журнал действий Jupyter Notebook будет распечатан на терминале. Когда вы запускаете Jupyter Notebook, он работает с определенным номером порта. Первый блокнот, который вы запускаете, обычно работает на порту 8888. Чтобы проверить конкретный номер порта, на котором работает 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 на локальном компьютере с Linux (не на дроплете), вы можете просто перейти на localhost:8888, чтобы подключиться к Jupyter Notebook. Если вы используете Jupyter Notebook в дроплете, вам потребуется подключиться к серверу с помощью туннелирования SSH, как описано в следующем разделе.

На этом этапе вы можете оставить соединение SSH открытым и оставить Jupyter Notebook работающим или выйти из приложения и повторно запустить его после настройки туннелирования SSH. Давайте не будем усложнять и остановим процесс Jupyter Notebook. Мы запустим его снова, как только туннелирование SSH заработает. Чтобы остановить процесс Jupyter Notebook, нажмите CTRL+C, введите Y и нажмите ENTER для подтверждения. Отобразится следующее:

Output
[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

Если вы используете Mac или Linux, шаги по созданию туннеля SSH аналогичны руководству «Как использовать ключи SSH с каплями DigitalOcean с использованием Linux или Mac», за исключением того, что в команду ssh добавлены дополнительные параметры. . В этом подразделе будут описаны дополнительные параметры, необходимые в команде ssh для успешного туннелирования.

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

  1. ssh -L 8000:localhost:8888 your_server_username@your_server_ip

Команда ssh открывает соединение SSH, но -L указывает, что данный порт на локальном (клиентском) хосте должен быть переадресован на данный хост и порт на удаленном сторона (Капелька). Это означает, что все, что выполняется на втором номере порта (например, 8888) в дроплете, будет отображаться на первом номере порта (например, 8000) на локальном компьютере. Вы должны изменить 8888 на порт, на котором работает Jupyter Notebook. При необходимости измените порт 8000 на один из выбранных вами (например, если 8000 используется другим процессом). Используйте порт больше или равный 8000 (например, 8001, 8002 и т. д. .), чтобы избежать использования порта, уже используемого другим процессом. server_username — это ваше имя пользователя (например, sammy) в созданной вами капле, а your_server_ip — это IP-адрес вашего Капля. Например, для имени пользователя sammy и адреса сервера 111.111.111.111 команда будет выглядеть так:

  1. ssh -L 8000:localhost:8888 sammy@111.111.111.111

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

  1. jupyter notebook

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

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

Если вы используете Windows, вы также можете легко создать туннель SSH с помощью Putty, как описано в разделе «Как использовать ключи SSH с PuTTY в дроплетах DigitalOcean» (для пользователей Windows).

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

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

Наконец, нажмите кнопку «Открыть», чтобы подключиться к серверу через SSH и туннелировать нужные порты. Перейдите на http://localhost:8000 (или любой другой порт, который вы выбрали) в веб-браузере, чтобы подключиться к Jupyter Notebook, работающему на сервере.

Шаг 5 — Использование ноутбука Jupyter

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

Чтобы создать новый файл записной книжки, выберите «Создать» > «Python 2» в правом верхнем раскрывающемся меню:

Это откроет блокнот. Теперь мы можем запустить код Python в ячейке или изменить ячейку на уценку. Например, измените первую ячейку, чтобы она принимала Markdown, щелкнув «Ячейка» > «Тип ячейки» > «Markdown» на верхней панели навигации. Теперь мы можем писать заметки, используя Markdown, и даже включать уравнения, написанные в LaTeX, помещая их между символами $$. Например, введите следующее в ячейку после изменения ее на уценку:

# Simple Equation

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

where $x = 2$

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

Вы можете использовать ячейки уценки, чтобы делать заметки и документировать свой код. Давайте реализуем это простое уравнение и напечатаем результат. Выберите «Вставить» > «Вставить ячейку ниже», чтобы вставить ячейку и ввести следующий код:

x = 2
y = x*x
print y

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

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

Заключение

Поздравляем! Теперь вы сможете писать воспроизводимый код Python и заметки, используя уценку, используя блокнот Jupyter, работающий в дроплете. Чтобы получить краткий обзор блокнота Jupyter, выберите «Справка» > «Обзор пользовательского интерфейса» в верхнем меню навигации.