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

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


Автор выбрал программу Write for DOnations.

Введение

Project Jupyter, Jupyter Notebook полезен для итеративного кодирования, поскольку позволяет написать небольшой фрагмент кода, запустить его и вернуть результат.

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

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

Предпосылки

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

  • Один экземпляр сервера Ubuntu 20.04. На этом сервере должен быть пользователь без полномочий root с привилегиями sudo и настроенным брандмауэром. Настройте это, следуя нашему руководству по первоначальной настройке сервера.
  • Python 3, pip и модуль Python venv, установленный на сервере. Сделайте это, выполнив шаги 1 и 2 нашего руководства по установке Python 3 и настройке локальной среды программирования в Ubuntu 20.04.
  • Современный веб-браузер, работающий на вашем локальном компьютере, который вы будете использовать для доступа к Jupyter Notebook.

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

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

Предполагая, что вы следовали руководствам, указанным в разделе «Предварительные требования», у вас должны быть установлены Python 3, pip и виртуальная среда. Примеры в этом руководстве следуют соглашению, используемому в предварительном руководстве по установке Python 3, в котором виртуальная среда называется \my_env, но вы можете свободно переименовывать ее.

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

  1. source my_env/bin/activate

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

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

  1. 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 Notebook

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

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

  1. jupyter notebook

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

Output
[I 19:46:22.031 NotebookApp] Writing notebook server cookie secret to /home/sammy/.local/share/jupyter/runtime/notebook_cookie_secret [I 19:46:22.365 NotebookApp] Serving notebooks from local directory: /home/sammy/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=Example_Jupyter_Token_3cadb8b8b7005d9a46ca4d6675 [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=Example_Jupyter_Token_3cadb8b8b7005d9a46ca4d6675&tokenExample_Jupyter_Token_3cadb8b8b7005d9a46ca4d6675

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

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

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

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

  1. exit

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

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

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

Обратите внимание, что эти инструкции предназначены для запуска из окна локального терминала, т. е. не из того, с помощью которого вы подключились к серверу.

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

Если вы используете Windows, вам необходимо установить версию OpenSSH, чтобы иметь возможность использовать ssh с терминала. Если вы предпочитаете работать в PowerShell, вы можете использовать Git для Windows, который предоставляет родную среду терминала Windows bash, включающую команду ssh. Каждый из них хорошо поддерживается, и в зависимости от того, что вы решите использовать, вам будет отдано предпочтение.

Если вы используете Mac или Linux, в вашем терминале уже будет доступна команда ssh.

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

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

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

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

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

server_username – это ваше имя пользователя (например, sammy) на созданном вами сервере и your_server_ip IP-адрес вашего сервера.

Например, для имени пользователя sammy и адреса сервера your_server_ip команда будет выглядеть так:

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

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

  1. source ~/environments/my_env/bin/activate

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

  1. jupyter notebook

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

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

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

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

В поле Пароль или токен вверху введите токен, показанный в выводе после того, как вы запустили 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=Example_Jupyter_Token_3cadb8b8b7005d9a46ca4d6675 [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 автоматически покажет все файлы и папки, хранящиеся в каталоге, из которого он запущен. Создайте новый файл записной книжки, нажав «Создать», затем «Python 3» в правом верхнем углу панели управления записной книжки:

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

# Equation

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

where $x = 2$

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

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

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

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

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

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

Заключение

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

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