Как установить, запустить и подключиться к ноутбуку Jupyter на удаленном сервере

_ Автор выбрал The Apache Software Foundation, чтобы получить пожертвование в размере 100 долларов США в рамках Write for DOnations program._

Вступление

Jupyter Notebook - это интерактивное веб-приложение с открытым исходным кодом, которое позволяет писать и запускать компьютерный код на более чем 40 языках программирования, включая https: // www.python.org/[Python], R, Julia и https://www.scala-lang.org / [Скала]. Jupyter Notebook - продукт из Project Jupyter. Он полезен для итеративного кодирования, поскольку позволяет написать небольшой фрагмент кода, выполнить его и вернуть результат.

Jupyter Notebook предоставляет возможность создавать блокнотные документы, называемые просто «блокнотами». Записные книжки, созданные на основе Jupyter Notebook, являются совместимыми, воспроизводимыми исследовательскими документами, которые включают элементы расширенного текста, уравнения, код и их результаты (рисунки, таблицы, интерактивные графики). Записные книжки также можно экспортировать в файлы исходного кода, документы HTML или PDF или использовать для создания интерактивных слайд-шоу или веб-страниц.

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

Предпосылки

Для завершения этого урока вам понадобится:

  • Один экземпляр сервера Ubuntu 18.04. На этом сервере должен быть пользователь без полномочий root с привилегиями sudo и настроенный брандмауэр. Настройте это, следуя нашему https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-18-04 руководстве по настройке начального сервера].

  • Python 3, pip и модуль Python + venv +, установленный на сервере. Сделайте это, выполнив шаги 1 и 2 нашего учебного руководства по адресу https://www.digitalocean.com/community/tutorials/how-to-install-python-3-and-set-up-a-programming-environment-on- an-ubuntu-18-04-server [Как установить Python 3 и настроить среду локального программирования в Ubuntu 18.04].

  • Современный веб-браузер, работающий на вашем локальном компьютере, который вы будете использовать для доступа к Jupyter Notebook.

Кроме того, если ваш локальный компьютер работает под управлением Windows, вам необходимо установить на него PuTTY, чтобы установить SSH-туннель к вашему серверу. Следуйте нашему руководству на How для создания ключей SSH с PuTTY на Windows, чтобы загрузить и установить PuTTY.

Шаг 1 - Установка ноутбука Jupyter

Поскольку записные книжки используются для написания, запуска и просмотра результатов небольших фрагментов кода, сначала необходимо настроить поддержку языка программирования. Jupyter Notebook использует специфичный для языка kernel, компьютерную программу, которая запускает и анализирует код. Jupyter Notebook имеет many ядра на разных языках, по умолчанию используется IPython. В этом руководстве вы настроите Jupyter Notebook для запуска кода Python через ядро ​​IPython.

Предполагая, что вы следовали учебным пособиям, связанным в разделе «Предварительные условия», вы должны иметь https://www.digitalocean.com/community/tutorials/how-to-install-python-3-and-set-up-a-local-programming -environment-on-ubuntu-18-04 [установлен Python 3, pip и виртуальная среда]. Примеры в этом руководстве следуют соглашению, используемому в предварительном учебном руководстве по установке Python 3, в котором виртуальная среда называется «+ my_env +` », но вы можете смело переименовывать ее.

Начните с активации виртуальной среды:

source /bin/activate

После этого к вашему приглашению будет добавлено имя вашей среды.

Теперь, когда вы находитесь в своей виртуальной среде, продолжайте и установите Jupyter Notebook:

python3 -m pip install jupyter

Если установка прошла успешно, вы увидите вывод, подобный следующему:

Output. . .
Successfully installed MarkupSafe-1.0 Send2Trash-1.5.0 backcall-0.1.0 bleach-2.1.3 decorator-4.3.0 entrypoints-0.2.3 html5lib-1.0.1 ipykernel-4.8.2 ipython-6.4.0 ipython-genutils-0.2.0 ipywidgets-7.2.1 jedi-0.12.0 jinja2-2.10 jsonschema-2.6.0 jupyter-1.0.0 jupyter-client-5.2.3 jupyter-console-5.2.0 jupyter-core-4.4.0 mistune-0.8.3 nbconvert-5.3.1 nbformat-4.4.0 notebook-5.5.0 pandocfilters-1.4.2 parso-0.2.0 pexpect-4.5.0 pickleshare-0.7.4 prompt-toolkit-1.0.15 ptyprocess-0.5.2 pygments-2.2.0 python-dateutil-2.7.3 pyzmq-17.0.0 qtconsole-4.3.1 simplegeneric-0.8.1 six-1.11.0 terminado-0.8.1 testpath-0.3.1 tornado-5.0.2

С этим Jupyter Notebook был установлен на ваш сервер. Далее мы рассмотрим, как запустить приложение.

Шаг 2 - Запуск ноутбука Jupyter

Jupyter Notebook должен запускаться с вашего VPS, чтобы вы могли подключиться к нему с локального компьютера, используя SSH Tunnel и ваш любимый веб-браузер.

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

jupyter notebook

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

Output[I 19:46:22.031 NotebookApp] Writing notebook server cookie secret to /home//.local/share/jupyter/runtime/notebook_cookie_secret
[I 19:46:22.365 NotebookApp] Serving notebooks from local directory: /home//environments
[I 19:46:22.365 NotebookApp] 0 active kernels
[I 19:46:22.366 NotebookApp] The Jupyter Notebook is running at:
[I 19:46:22.366 NotebookApp] http://localhost:8888/?token=
[I 19:46:22.366 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[W 19:46:22.366 NotebookApp] No web browser found: could not locate runnable browser.
[C 19:46:22.367 NotebookApp]

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

В выводе вы можете заметить, что + + не найдено веб-браузера + предупреждение. Этого и следовало ожидать, так как приложение работает на сервере, и вы, вероятно, не установили на него веб-браузер. В этом руководстве будет рассказано, как подключиться к ноутбуку на сервере с использованием SSH-туннелирования, в следующем разделе.

На данный момент выйдите из Jupyter Notebook, нажав + CTRL + C +, затем + y + и затем нажав + ENTER + для подтверждения:

OutputShutdown this notebook server (y/[n])?
[C 20:05:47.654 NotebookApp] Shutdown confirmed
[I 20:05:47.654 NotebookApp] Shutting down 0 kernels

Затем выйдите из сервера с помощью команды + exit +:

exit

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

Шаг 3 - Подключение к приложению Jupyter Notebook с SSH-туннелированием

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

Протокол SSH включает механизм переадресации портов, который позволяет вам туннелировать определенные приложения, работающие с определенным номером порта на сервере, к определенному номеру порта на вашем локальном компьютере. Мы узнаем, как безопасно «перенаправить» приложение Jupyter Notebook, работающее на вашем сервере (по умолчанию порт «+ 8888 +»), на порт вашего локального компьютера.

Метод, который вы используете для установки SSH-туннеля, будет зависеть от операционной системы вашего локального компьютера. Перейдите к подразделу ниже, который наиболее актуален для вашей машины.

SSH-туннелирование с использованием macOS или Linux

Если ваш локальный компьютер работает под управлением Linux или macOS, можно установить SSH-туннель, просто выполнив одну команду.

+ ssh + - это стандартная команда для открытия SSH-соединения, но при использовании с директивой + -L + вы можете указать, что данный порт на локальном хосте (то есть на вашем локальном компьютере) будет перенаправлен на данный хост и порт на удаленном хосте (в данном случае ваш сервер). Это означает, что все, что работает на указанном порту на удаленном сервере (+ 8888 +, порт Jupyter Notebook по умолчанию), будет отображаться на указанном порту вашего локального компьютера (++ в примере команды).

Чтобы установить собственный SSH-туннель, выполните следующую команду. Не стесняйтесь сменить порт ++ на ваш выбор, если, например, + 8000 + используется другим процессом. Рекомендуется использовать порт, больший или равный + 8000 +, так как эти номера портов вряд ли будут использоваться другим процессом. Не забудьте указать IP-адрес вашего собственного сервера и имя пользователя, не являющегося пользователем root:

ssh -L :localhost:8888 @

Если в этой команде нет ошибок, она зарегистрирует вас на вашем удаленном сервере. Оттуда активируйте виртуальную среду:

source ~/environments//bin/activate

Затем запустите приложение Jupyter Notebook:

jupyter notebook

Чтобы подключиться к Jupyter Notebook, используйте ваш любимый веб-браузер, чтобы перейти к локальному порту на локальном хосте: + http: // localhost: +. Теперь, когда вы подключены к ноутбуку Jupyter, перейдите к шагу 4, чтобы узнать, как его использовать.

SSH-туннелирование с использованием Windows и PuTTY

PuTTY - это SSH-клиент с открытым исходным кодом для Windows, который можно использовать для https://www.digitalocean.com/community/tutorials/how-to-use-ssh-keys-with-putty-on-digitalocean-droplets-windows -users [подключиться к вашему серверу]. После загрузки и установки PuTTY на вашем компьютере с Windows (как описано в обязательном руководстве), откройте программу и введите URL-адрес или IP-адрес сервера, как показано здесь:

image: https: //assets.digitalocean.com/articles/jupyter_notebook/JN_putty_1.png [Введите URL-адрес сервера или IP-адрес в Putty]

Затем нажмите * + SSH * в нижней части левой панели, а затем нажмите * Туннели *. В этом окне введите порт, который вы хотите использовать для доступа к Jupyter на локальном компьютере (++). Рекомендуется использовать порт, больший или равный + 8000 +, так как эти номера портов вряд ли будут использоваться другим процессом. Если + 8000 + используется другим процессом, выберите другой, неиспользуемый номер порта. Затем установите назначение как + localhost: 8888 +, поскольку порт + 8888 + - это тот, на котором работает Jupyter Notebook. Затем нажмите кнопку * Добавить *, и порты должны появиться в поле * Переадресованные порты *:

изображение: https: //assets.digitalocean.com/articles/jupyter_notebook/JN_putty_2.png [Настройка SSH-туннеля в Putty]

Наконец, нажмите кнопку * Открыть *. Это позволит соединить вашу машину с сервером через SSH и туннелировать нужные порты. Если ошибок нет, продолжайте и активируйте свою виртуальную среду:

source ~/environments//bin/activate

Затем запустите Jupyter Notebook:

jupyter notebook

Затем перейдите к локальному порту в вашем любимом веб-браузере, например + http: // localhost: + (или любой другой номер порта, который вы выбрали), чтобы подключиться к экземпляру Jupyter Notebook, работающему на сервере. Теперь, когда вы подключены к ноутбуку Jupyter, перейдите к шагу 4, чтобы узнать, как его использовать.

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

При доступе через веб-браузер Jupyter Notebook предоставляет инструментальную панель Notebook, которая действует как файловый браузер и дает вам интерфейс для создания, редактирования и изучения записных книжек. Думайте об этих записных книжках как о документах (сохраненных с расширением файла + .ipynb +), которые вы заполняете любым количеством отдельных ячеек. Каждая ячейка содержит интерактивный текстовый редактор, который можно использовать для запуска кода или написания визуализированного текста. Кроме того, записные книжки позволяют вам писать и выполнять уравнения, включая другие мультимедийные файлы, такие как изображения или интерактивные графики, и их можно экспортировать и совместно использовать в различных форматах (+ .ipyb +, + .pdf +, `+ .py + `). Чтобы проиллюстрировать некоторые из этих функций, мы создадим файл записной книжки из панели инструментов ноутбука, напишем простую текстовую доску с уравнением и запустим некоторый базовый код Python 3.

К этому моменту вы должны были подключиться к серверу через туннель SSH и запустить приложение Jupyter Notebook с вашего сервера. После перехода к + http: // localhost: + вы увидите страницу входа:

изображение: https: //assets.digitalocean.com/articles/jupyter_notebook/JN_login_screen_small.png [Экран входа в Jupyter Notebook]

В поле * Password или token * вверху введите токен, показанный в выводе после запуска + jupyter notebook + с вашего сервера:

Output[I 20:35:17.004 NotebookApp] Writing notebook server cookie secret to /run/user/1000/jupyter/notebook_cookie_secret
[I 20:35:17.314 NotebookApp] Serving notebooks from local directory: /home/sammy
[I 20:35:17.314 NotebookApp] 0 active kernels
[I 20:35:17.315 NotebookApp] The Jupyter Notebook is running at:
[I 20:35:17.315 NotebookApp] http://localhost:8888/?token=
[I 20:35:17.315 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[W 20:35:17.315 NotebookApp] No web browser found: could not locate runnable browser.
[C 20:35:17.316 NotebookApp]
. . .

Кроме того, вы можете скопировать этот URL из вывода вашего терминала и вставить его в адресную строку браузера.

В блокноте Jupyter автоматически отобразятся все файлы и папки, хранящиеся в каталоге, из которого он запущен. Создайте новый файл блокнота, нажав * New * затем * Python 3 * в правом верхнем углу панели инструментов Notebook:

изображение: https: //assets.digitalocean.com/articles/jupyter_notebook/JN_new_python3.png [Создать новую записную книжку Python3]

В этой новой записной книжке измените первую ячейку, чтобы принять синтаксис уценки, нажав * Ячейка *> * Тип ячейки *> * Уценка * на панели навигации вверху. В дополнение к уценке этот тип ячейки также позволяет писать уравнения в LaTeX. Например, введите следующее в ячейку после изменения ее на уценку:

# Simple Equation

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

where $x = 2$

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

image: https: //assets.digitalocean.com/articles/jupyter_notebook/JN_sample_equation.png [Превратить пример уравнения в форматированный текст]

Вы можете использовать ячейки уценки, чтобы делать заметки и документировать свой код.

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

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

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

изображение: https: //assets.digitalocean.com/articles/jupyter_notebook/JN_sample_equation2.png [Решить пример уравнения]

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

Заключение

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

изображение: https: //assets.digitalocean.com/articles/jupyter_notebook/JN_help_tour.png [Справочный тур по поиску ноутбука Jupyter]

Если вам интересно, мы рекомендуем вам больше узнать о Jupyter Notebook, прочитав Project Jupyter документацию. Кроме того, вы можете опираться на то, что вы узнали из этого руководства, по адресу learning о том, как кодировать в Python 3.

Related