Вступление
Jupyter Notebook предлагает командную оболочку для интерактивных вычислений в виде веб-приложения. Инструмент может использоваться с несколькими языками, включая Python, Julia, R, Haskell и Ruby. Он часто используется для работы с данными, статистического моделирования и машинного обучения.
Из этого туториала Вы узнаете, как настроить Jupyter Notebook для запуска с сервера Debian 9, а также узнаете, как подключиться и использовать ноутбук. Записные книжки Jupyter (или просто записные книжки) - это документы, выпускаемые приложением Jupyter Notebook, которые содержат как компьютерный код, так и элементы форматированного текста (абзацы, уравнения, рисунки, ссылки и т. Д.), Которые помогают представлять и распространять воспроизводимые исследования.
К концу этого руководства вы сможете запускать код Python 3 с помощью Jupyter Notebook на удаленном сервере.
Предпосылки
Чтобы выполнить это руководство, у вас должен быть свежий экземпляр сервера Debian 9 с базовым брандмауэром и пользователем без полномочий root с настроенными привилегиями sudo. Вы можете узнать, как это настроить, запустив наше руководство Initial Server Setup с Debian 9.
Шаг 1 - Установите заголовки Pip и Python
Чтобы начать процесс, мы загрузим и установим все нужные нам элементы из репозиториев Debian. Мы будем использовать менеджер пакетов Python + pip +
, чтобы установить дополнительные компоненты чуть позже.
Сначала нам нужно обновить локальный индекс пакетов + apt +
, а затем загрузить и установить пакеты:
sudo apt update
Затем установите + pip +
и заголовочные файлы Python, которые используются некоторыми зависимостями Jupyter:
sudo apt install python3-pip python3-dev
Debian 9 («Stretch») поставляется с предустановленной Python 3.5.
Теперь мы можем перейти к настройке виртуальной среды Python, в которую мы будем устанавливать Jupyter.
Шаг 2 - Создайте виртуальную среду Python для Jupyter
Теперь, когда у нас есть Python 3, его заголовочные файлы и + pip +
, готовые к работе, мы можем создать виртуальную среду Python для более простого управления. Мы установим Jupyter в эту виртуальную среду.
Для этого нам сначала нужен доступ к команде + virtualenv +
. Мы можем установить это с помощью + pip +
.
Обновите + pip +
и установите пакет, набрав:
sudo -H pip3 install --upgrade pip
sudo -H pip3 install virtualenv
С установленным + virtualenv +
мы можем начать формировать нашу среду. Создайте и перейдите в каталог, где мы можем хранить файлы нашего проекта:
mkdir ~/
cd ~/
В каталоге проекта создайте виртуальную среду Python, набрав:
virtualenv
Это создаст каталог с именем ` в вашем каталоге `
. Внутри он установит локальную версию Python и локальную версию + pip +
. Мы можем использовать это для установки и настройки изолированной среды Python для Jupyter.
Перед установкой Jupyter нам нужно активировать виртуальную среду. Вы можете сделать это, набрав:
source /bin/activate
Ваше приглашение должно измениться, чтобы указать, что вы сейчас работаете в виртуальной среде Python. Это будет выглядеть примерно так: + () @: ~ / $ +
.
Теперь вы готовы установить Jupyter в эту виртуальную среду.
Шаг 3 - Установите Jupyter
Когда ваша виртуальная среда активна, установите Jupyter с локальным экземпляром + pip +
:
pip install jupyter
К этому моменту вы успешно установили все программное обеспечение, необходимое для запуска Jupyter. Теперь мы можем запустить сервер ноутбука.
Шаг 4 - Запустите Jupyter Notebook
Теперь у вас есть все необходимое для запуска ноутбука Jupyter! Чтобы запустить его, выполните следующую команду:
jupyter notebook
Журнал действий Jupyter Notebook будет распечатан на терминале. Когда вы запускаете Jupyter Notebook, он работает с определенным номером порта. В первой записной книжке, которую вы запускаете, обычно используется порт ++
. Чтобы проверить конкретный номер порта, на котором работает 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//
[I 21:23:21.361 NotebookApp] The Jupyter Notebook is running at:
[I 21:23:21.361 NotebookApp] http://localhost:/?token=
[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:/?token=
Если вы используете Jupyter Notebook на локальном компьютере Debian (не на капле), вы можете просто перейти к отображаемому 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-туннель, чтобы мы могли получить доступ к ноутбуку.
Шаг 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 :localhost: @
Команда + ssh +
открывает SSH-соединение, но + -L +
указывает, что данный порт на локальном (клиентском) хосте должен быть перенаправлен на данный хост и порт на удаленной стороне (сервере). Это означает, что все, что работает на втором номере порта (например, `) на сервере появится на первом номере порта (например, `
) на вашем локальном компьютере.
При желании измените порт ++
на один из ваших вариантов, чтобы избежать использования порта, уже используемого другим процессом.
- это ваше имя пользователя (например, ) на сервере, который вы создали, а `` - это IP-адрес вашего сервера.
Например, для имени пользователя ` и адреса сервера `
команда будет такой:
ssh -L :localhost: @
Если после выполнения команды + ssh -L +
ошибка не появляется, вы можете перейти в свою среду программирования и запустить Jupyter Notebook:
jupyter notebook
Вы получите вывод с URL. В веб-браузере на вашем локальном компьютере откройте веб-интерфейс Jupyter Notebook с URL-адресом, начинающимся с + http: // localhost: 8888 +
. Убедитесь, что номер токена включен, или введите строку номера токена при появлении запроса в + http: // localhost: 8888 +
.
SSH-туннелирование с Windows и Putty
Если вы используете Windows, вы можете создать SSH-туннель, используя Putty.
Сначала введите URL-адрес сервера или IP-адрес в качестве имени хоста, как показано ниже:
изображение: https: //assets.digitalocean.com/articles/jupyter_notebook/set_hostname_putty.png [Установить имя хоста для туннеля SSH]
Затем нажмите * SSH * в нижней части левой панели, чтобы развернуть меню, а затем нажмите * Туннели *. Введите номер локального порта, который будет использоваться для доступа к Jupyter на вашем локальном компьютере. Выберите ` или выше, чтобы избежать портов, используемых другими службами, и установите в качестве пункта назначения `+ localhost: +`, где `
- номер порта, на котором работает Jupyter Notebook.
Теперь нажмите кнопку * Добавить *, и порты должны появиться в списке * Переадресованные порты *:
изображение: https: //assets.digitalocean.com/articles/jupyter_notebook/forwarded_ports_putty.png [Список переадресованных портов]
Наконец, нажмите кнопку * Open *, чтобы подключиться к серверу через SSH и туннелировать нужные порты. Перейдите к + http: // localhost: +
(или к другому выбранному вами порту) в веб-браузере, чтобы подключиться к Jupyter Notebook, работающему на сервере. Убедитесь, что номер токена включен, или введите строку номера токена при появлении запроса в + http: // localhost: 8000 +
.
Шаг 6 - Использование ноутбука Jupyter
В этом разделе рассматриваются основы использования ноутбука Jupyter. Если у вас в данный момент не работает Jupyter Notebook, запустите его с помощью команды + jupyter notebook
.
Теперь вы должны быть подключены к нему с помощью веб-браузера. Jupyter Notebook очень мощный и имеет много функций. В этом разделе будут описаны основные функции, которые помогут вам начать пользоваться ноутбуком. Jupyter Notebook покажет все файлы и папки в каталоге, из которого он запущен, поэтому, когда вы работаете над проектом, обязательно запустите его из каталога проекта.
Чтобы создать новый файл записной книжки, выберите * New *> * Python 3 * в правом верхнем раскрывающемся меню:
изображение: https: //assets.digitalocean.com/articles/eng_python/JupyterNotebookPy3/jupyter-notebook-new.png [Создать новую записную книжку Python 3]
Это откроет блокнот. Теперь мы можем запустить код Python в ячейке или изменить ячейку на уценку. Например, измените первую ячейку для принятия Markdown, нажав * Cell *> * Тип ячейки *> * Markdown * в верхней панели навигации. Теперь мы можем писать заметки, используя Markdown, и даже включать уравнения, написанные на LaTeX, помещая их между символами + $$ +
. Например, введите следующее в ячейку после изменения ее на уценку:
# Simple Equation
Let us now implement the following equation:
$$ y = x^2$$
where $x = 2$
Чтобы превратить уценку в форматированный текст, нажмите + CTRL + ENTER +
, и результаты должны быть следующими:
изображение: https: //assets.digitalocean.com/articles/jupyter_notebook/markdown_results.png [результаты уценки]
Вы можете использовать ячейки уценки, чтобы делать заметки и документировать свой код. Давайте реализуем это простое уравнение и напечатаем результат. Нажмите на верхнюю ячейку, затем нажмите + ALT + ENTER
, чтобы добавить ячейку под ней. Введите следующий код в новой ячейке.
x = 2
y = x**2
print(y)
Чтобы запустить код, нажмите + CTRL + ENTER
. Вы получите следующие результаты:
изображение: https: //assets.digitalocean.com/articles/eng_python/JupyterNotebookPy3/jupyter-notebook-md-python.png [результаты простых уравнений]
Теперь у вас есть возможность import modules и использовать ноутбук, как и в любой другой среде разработки Python. !
Заключение
Поздравляем! Теперь вы сможете писать воспроизводимый код Python и заметки в Markdown, используя Jupyter Notebook. Чтобы получить быстрый обзор Jupyter Notebook из интерфейса, выберите * Справка *> * Интерфейс пользователя * в верхнем меню навигации, чтобы узнать больше.
Отсюда вам может быть интересно прочитать нашу серию на Time Series Visualization and Forecasting.