Установка Jupyter Notebook для Python 3 в Debian 10

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

В данном мануале вы узнаете, как установить и настроить Jupyter Notebook на сервере Debian 10, а также научитесь работать с документами (notebook). В контексте Jupyter Notebook, notebook – это документы, которые могут содержать как компьютерный код, так и элементы форматированного текста (абзацы, уравнения, рисунки, ссылки и тд.), что помогает описывать и распространять исследования.

В результате вы сможете запустить код Python 3 с помощью Jupyter Notebook на удаленном сервере Debian 10.

Требования

Для работы вам понадобится свежий сервер Debian 10 с пользователем sudo и настроенным брандмауэром. Начальная настройка сервера описана здесь.

1: Установка pip и заголовков Python

Сначала нужно загрузить и установить из репозитория Debian все компоненты. Это, например, pip – менеджер пакетов Python, который мы чуть позже будем использовать для установки дополнительных компонентов.

Обновите индекс локальных пакетов:

sudo apt update

Установите pip и заголовки Python, которые нужны некоторым зависимостям Jupyter:

sudo apt install python3-pip python3-dev

В Debian 10 (“Buster”) по умолчанию предустановлен Python 3.7.

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

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

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

После установки зависимостей можно создать такую среду.

Для начала нужно установить команду virtualenv. Это можно сделать с помощью pip. Обновите pip и установите нужный пакет:

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

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

mkdir ~/myprojectdir
cd ~/myprojectdir

Здесь создайте виртуальную среду Python:

virtualenv myprojectenv

Эта команда создаст каталог myprojectenv в вашем каталоге myprojectdir. Внутри будет установлена локальная версия Python и pip. Их можно использовать для установки и настройки изолированной среды Python для Jupyter.

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

source myprojectenv/bin/activate

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

(myprojectenv)user@host:~/myprojectdir$

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

3: Установка Jupyter

После активации среды вы можете установить Jupyter с помощью локальной версии pip.

pip install jupyter

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

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

4: Запуск Jupyter Notebook

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

jupyter notebook

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

[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/8host/myprojectdir
[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 на локальном компьютере Debian (не на удаленном сервере), вы можете просто перейти к отображаемому URL-адресу и подключиться к Jupyter Notebook. Если вы используете Jupyter Notebook на удаленном сервере, вам необходимо подключиться к серверу через SSH-туннелирование, как описано в следующем разделе.

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

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

5: Подключение к серверу по SSH-туннелю

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

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

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

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

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

ssh -L 8888:localhost:8888 your_server_username@your_server_ip

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

При желании замените порт 8888 на любой другой номер порта, если 8888 уже используется другим процессом.

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

Например, если имя пользователя — 8host, а адреса – 203.0.113.0, то команда будет выглядеть так:

ssh -L 8888:localhost:8888 8host@203.0.113.0

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

jupyter notebook

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

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

В системе Windows SSH-туннели можно создать с помощью Putty.

Сначала в поле Host Name (or IP address) введите URL или IP-адрес сервера.

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

После этого нажмите Add, и порты должны появиться в списке Forwarded ports.

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

6: Работа с Jupyter Notebook

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

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

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

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

# First Equation
Let us now implement the following equation:
$$ y = x^2$$
where $x = 2$

Чтобы превратить Markdown в форматированный текст, нажмите Ctrl + Enter.

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

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

Чтобы запустить код, нажмите Ctrl+Enter. На экране появится результат.

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

Читайте также: Импорт модулей в Python 3

Заключение

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

Читайте также:

Tags: , , , , ,