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

Вступление

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

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

К концу этого руководства вы сможете запускать код Python 3 с помощью Jupyter Notebook на удаленном сервере.

Предпосылки

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

[[step-1 -—- set-up-python]] == Шаг 1. Настройка Python

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

Сначала нам нужно обновить локальный индекс пакетаapt, а затем загрузить и установить пакеты:

sudo apt update

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

sudo apt install python3-pip python3-dev

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

[[step-2 -—- create-a-python-virtual-environment-for-jupyter]] == Шаг 2. Создание виртуальной среды Python для Jupyter

Теперь, когда у нас есть Python 3, его заголовочные файлы и готовый к работе pip, мы можем создать виртуальную среду Python для управления нашими проектами. Мы установим Jupyter в эту виртуальную среду.

Для этого нам сначала нужен доступ к командеvirtualenv, которую мы можем установить с помощью pip.

Обновите pip и установите пакет, набрав:

sudo -H pip3 install --upgrade pip
sudo -H pip3 install virtualenv

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

Установивvirtualenv, мы можем начать формирование нашей среды. Создайте и перейдите в каталог, где мы можем хранить файлы нашего проекта. Мы назовем этоmy_project_dir, но вы должны использовать имя, которое имеет смысл для вас и того, над чем вы работаете.

mkdir ~/my_project_dir
cd ~/my_project_dir

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

virtualenv my_project_env

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

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

source my_project_env/bin/activate

Ваше приглашение должно измениться, чтобы указать, что вы сейчас работаете в виртуальной среде Python. Это будет выглядеть примерно так:(my_project_env)user@host:~/my_project_dir$.

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

[[step-3 -—- install-jupyter]] == Шаг 3. Установите Jupyter

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

[.note] #Note: Когда виртуальная среда активирована (когда перед приглашением стоит(my_project_env)), используйтеpip вместоpip3, даже если вы используете Python 3. Копия инструмента в виртуальной среде всегда называетсяpip, независимо от версии Python.
#

pip install jupyter

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

[[step-4 -—- run-jupyter-notebook]] == Шаг 4. Запустите Jupyter Notebook

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

jupyter notebook

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

Output[I 21:23:21.198 NotebookApp] Writing notebook server cookie secret to /run/user/1001/jupyter/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 is running at:
[I 21:23:21.361 NotebookApp] http://localhost: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]

    Copy/paste this URL into your browser when you connect for the first time,
    to login with a token:
        http://localhost:8888/?token=1fefa6ab49a498a3f37c959404f7baf16b9a2eda3eaa6d72

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

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

Output[C 21:28:28.512 NotebookApp] Shutdown confirmed
[I 21:28:28.512 NotebookApp] Shutting down 0 kernels

Теперь мы настроим SSH-туннель, чтобы получить доступ к ноутбуку.

[[step-5 -—- connect-to-the-server-using-ssh-tunneling]] == Шаг 5. Подключитесь к серверу с помощью SSH-туннелирования.

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

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

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

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

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

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 [email protected]

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

jupyter notebook

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

SSH-туннелирование с Windows и Putty

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

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

Set Hostname for SSH Tunnel

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

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

Forwarded ports list

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

[[step-6 -—- using-jupyter-notebook]] == Шаг 6 - Использование Jupyter Notebook

В этом разделе рассматриваются основы использования ноутбука Jupyter. Если у вас еще не запущен Jupyter Notebook, запустите его с помощью командыjupyter notebook.

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

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

Create a new Python 3 notebook

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

# First Equation

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

where $x = 2$

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

results of markdown

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

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

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

first equation results

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

Заключение

Поздравляем! Теперь вы сможете писать воспроизводимый код Python и заметки в Markdown, используя Jupyter Notebook. Чтобы получить быстрый обзор Jupyter Notebook из интерфейса, выберитеHelp>User Interface Tour в верхнем меню навигации, чтобы узнать больше.

Отсюда вы можете начать проект анализа и визуализации данных, прочитавData Analysis and Visualization with pandas and Jupyter Notebook in Python 3.

Если вам интересно узнать больше, вы можете прочитать нашу серию статей оTime Series Visualization and Forecasting.

Related