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

Как настроить ноутбук Jupyter с Python 3 в Ubuntu 18.04


Введение

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

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

Предпосылки

Для выполнения этого руководства вам понадобится экземпляр сервера Ubuntu 18.04 с брандмауэром и пользователем без полномочий root с настроенными привилегиями sudo. Вы можете настроить это, выполнив наше руководство по начальной настройке сервера.

Шаг 1 — Настройка Python

Чтобы начать процесс, установите зависимости для вашей среды программирования Python из репозиториев Ubuntu. Ubuntu 18.04 поставляется с предустановленным Python 3.6.9. Вы будете использовать pip менеджера пакетов Python для установки дополнительных компонентов позже.

Сначала обновите локальный индекс пакета apt:

  1. sudo apt update

Затем установите pip и заголовочные файлы Python, которые используются некоторыми зависимостями Jupyter:

  1. sudo apt install python3-pip python3-dev

Теперь вы можете перейти к настройке виртуальной среды Python.

Шаг 2 — Создание виртуальной среды Python для Jupyter

Установив некоторые зависимости, вы можете создать виртуальную среду Python для управления своими проектами. Jupyter будет установлен в эту виртуальную среду.

Вам понадобится доступ к команде virtualenv, которую можно установить с помощью pip.

Сначала обновите pip, набрав:

  1. sudo -H pip3 install --upgrade pip

Затем установите virtualenv с помощью этой команды:

  1. sudo -H pip3 install virtualenv

Флаг -H гарантирует, что политика безопасности задает для переменной среды home домашний каталог целевого пользователя.

Установив virtualenv, вы можете начать формировать свою среду. Создайте и переместите в каталог, где вы можете хранить файлы проекта. Каталог следующего примера называется my_project_dir. Используйте имя, которое имеет смысл для вас и того, над чем вы работаете.

Создайте свой каталог, введя следующую команду:

  1. mkdir ~/my_project_dir

Перейдите в my_project_dir с помощью этой команды:

  1. cd ~/my_project_dir

В каталоге проекта создайте виртуальную среду Python. В этом руководстве среда будет называться my_project_env, но, опять же, вы можете называть ее так, как это имеет отношение к вашему проекту.

  1. virtualenv my_project_env

Это создает каталог с именем my_project_env в вашем каталоге my_project_dir. Внутри он установит локальную версию Python и локальную версию pip. Вы можете использовать это для установки и настройки изолированной среды Python для Jupyter.

Перед установкой Jupyter активируйте виртуальную среду. Вы можете сделать это, набрав:

  1. source my_project_env/bin/activate

Ваше приглашение должно измениться, чтобы указать, что вы сейчас работаете в виртуальной среде Python, подобной этой:

Теперь вы готовы установить Jupyter в эту виртуальную среду.

Шаг 3 — Установка Юпитера

Когда ваша виртуальная среда активна, установите Jupyter с локальным экземпляром pip.

Примечание. Когда виртуальная среда активирована (когда перед приглашением стоит (my_project_env)), используйте pip вместо pip3, даже если вы используют Python 3. Копия инструмента в виртуальной среде всегда называется pip, независимо от версии Python.

  1. pip install jupyter

На данный момент вы успешно установили все программное обеспечение, необходимое для запуска Jupyter. Теперь вы можете запустить сервер Notebook.

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

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

  1. jupyter notebook

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

Output
[I 21:23:21.198 NotebookApp] Writing notebook server cookie secret to /home/sammy/.local/share/jupyter/runtime/notebook_cookie_secret [I 21:23:21.361 NotebookApp] Serving notebooks from local directory: /home/sammy/my_project_dir [I 21:23:21.361 NotebookApp] The Jupyter Notebook 6.4.10 is running at: [I 21:23:21.361 NotebookApp] http://localhost:8888/?token=1fefa6ab49a498a3f37c959404f7baf16b9a2eda3eaa6d72 [I 21:23:21.361 NotebookApp] or http://127.0.0.1:8888/?token=1fefa6ab49a498a3f37c959404f7baf16b9a2eda3eaa6d72 [I 21:23:21.361 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation). [W 21:23:21.361 NotebookApp] No web browser found: could not locate runnable browser. [C 21:23:21.361 NotebookApp] To access the notebook, open this file in a browser: file:///home/sammy/.local/share/jupyter/runtime/nbserver-7924-open.html Or copy and paste one of these URLs: http://localhost:8888/?token=1fefa6ab49a498a3f37c959404f7baf16b9a2eda3eaa6d72 or http://127.0.0.1:8888/?token=1fefa6ab49a498a3f37c959404f7baf16b9a2eda3eaa6d72

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

На этом этапе вы можете оставить соединение SSH открытым и оставить Jupyter Notebook работающим, или вы можете выйти из приложения и повторно запустить его после настройки туннелирования SSH.

Если вы хотите остановить процесс Jupyter Notebook, нажмите CTRL + C, введите Y, а затем нажмите ENTER для подтверждения. Будет отображен следующий вывод:

Output
[C 19:23:34.939 NotebookApp] Shutdown confirmed [I 19:23:34.940 NotebookApp] Shutting down 0 kernels [I 19:23:34.941 NotebookApp] Shutting down 0 terminals

Теперь вы можете настроить туннель SSH для доступа к ноутбуку.

Шаг 5 — Подключение к серверу с помощью SSH-туннелирования

Jupyter Notebook работает на определенном порту сервера (например, :8888, :8889 и т. д.). Туннелирование SSH позволяет безопасно подключаться к порту сервера.

Следующие два подраздела описывают, как создать туннель SSH из операционных систем Mac, Linux и Windows. Пожалуйста, обратитесь к подразделу для вашего локального компьютера.

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

Если вы используете Mac или Linux, шаги по созданию туннеля SSH аналогичны использованию SSH для входа на удаленный сервер, за исключением того, что в команде ssh есть дополнительные параметры.

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

  1. 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 команда будет выглядеть так:

  1. ssh -L 8888:localhost:8888 sammy@203.0.113.0

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

  1. jupyter notebook

Вы получите вывод с URL-адресом. В веб-браузере на локальном компьютере откройте веб-интерфейс Jupyter Notebook с URL-адресом, начинающимся с http://localhost:8888. Убедитесь, что номер токена включен, или введите строку номера токена при появлении запроса на http://localhost:8888:

Output
... [I 21:23:21.361 NotebookApp] The Jupyter Notebook 6.4.10 is running at: [I 21:23:21.361 NotebookApp] http://localhost:8888/?token=1fefa6ab49a498a3f37c959404f7baf16b9a2eda3eaa6d72 ...

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

Если вы используете Windows, вы можете создать туннель SSH с помощью Putty.

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

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

Нажмите кнопку «Добавить», и порты должны появиться в списке «Переадресованные порты»:

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

Независимо от того, подключаетесь ли вы в ОС Mac/Linux или Windows, теперь вы должны быть подключены к своему серверу через туннелирование SSH. Теперь вы готовы использовать Jupyter Notebook в своем веб-браузере.

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

Если у вас еще не запущен Jupyter Notebook, запустите его с помощью команды jupyter Notebook:

  1. jupyter notebook

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

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

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

# First Equation

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

where $x = 2$

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

Вы можете использовать ячейки уценки, чтобы делать заметки и документировать свой код. Чтобы реализовать это уравнение и распечатать результат, щелкните верхнюю ячейку, затем нажмите ALT + ENTER, чтобы добавить ячейку под ней. Введите следующий код в новую ячейку.

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

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

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

Заключение

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

Отсюда вы можете начать проект анализа и визуализации данных, прочитав Анализ и визуализация данных с помощью pandas и Jupyter Notebook в Python 3.

Если вам интересно узнать больше, вы можете прочитать нашу серию статей о визуализации и прогнозировании временных рядов.