Вступление
IPython - это интерактивный интерфейс командной строки для Python. Jupyter Notebook предлагает интерактивный веб-интерфейс для многих языков, включая IPython.
В этой статье вы узнаете, как настроить сервер для работы с Jupyter Notebook, а также узнаете, как подключиться и использовать ноутбук. Записные книжки Jupyter (или просто записные книжки) - это документы, созданные приложением Jupyter Notebook, которые содержат оба компьютерных кода (например, Python) и элементы расширенного текста (абзацы, уравнения, рисунки, ссылки и т. Д.), Которые помогают представить воспроизводимые исследования.
К концу этого руководства вы сможете запускать код Python 2.7, используя Ipython и Jupyter Notebook, работающие на удаленном сервере. Для целей данного руководства используется Python 2 (2.7.x), поскольку многие библиотеки по науке о данных, научным вычислениям и высокопроизводительным вычислениям поддерживают версии 2.7, а не 3.0+.
Предпосылки
Чтобы следовать этому уроку, вам понадобится следующее:
-
Ubuntu 16.04 Droplet
-
Пользователь без полномочий root с привилегиями sudo (Initial Server Setup с Ubuntu 16.04 объясняет, как это настроить. )
Все команды в этом руководстве должны выполняться от имени пользователя без полномочий root. Если для этой команды требуется root-доступ, ему будет предшествовать + sudo +
. Initial Server Setup с Ubuntu 16.04 объясняет, как добавлять пользователей и предоставлять им доступ sudo.
Шаг 1 - Установка Python 2.7 и Pip
В этом разделе мы установим Python 2.7 и Pip.
Сначала обновите индекс пакета системы. Это гарантирует, что старые или устаревшие пакеты не будут мешать установке.
sudo apt-get update
Затем установите Python 2.7, Python Pip и Python Development:
sudo apt-get -y install python2.7 python-pip python-dev
Установка + python2.7 +
обновит до последней версии Python 2.7, а + python-pip +
установит Pip, который позволяет нам управлять пакетами Python, которые мы хотели бы использовать. Некоторые из зависимостей Jupyter могут потребовать компиляции, в этом случае вам понадобится возможность компилировать C-расширения Python, поэтому мы также устанавливаем + python-dev +
.
Чтобы убедиться, что у вас установлен Python:
python --version
Это выведет:
OutputPython 2.7.11+
В зависимости от последней версии Python 2.7 выходные данные могут отличаться.
Вы также можете проверить, установлен ли pip, с помощью следующей команды:
pip --version
Вы должны что-то похожее на следующее:
Outputpip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)
Аналогично, в зависимости от вашей версии pip, результат может быть немного другим.
Шаг 2 - Установка Ipython и Jupyter Notebook
В этом разделе мы установим Ipython и Jupyter Notebook.
Сначала установите Ipython:
sudo apt-get -y install ipython ipython-notebook
Теперь мы можем перейти к установке ноутбука Jupyter:
sudo -H pip install jupyter
В зависимости от того, какая версия pip находится в репозитории Ubuntu apt-get, вы можете получить следующую ошибку при попытке установить Jupyter:
OutputYou are using pip version 8.1.1, however version 8.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Если это так, вы можете использовать pip для обновления pip до последней версии:
sudo -H pip install --upgrade pip
Обновите pip и попробуйте снова установить Jupyter:
sudo -H pip install jupyter
Шаг 3 - Запуск ноутбука Jupyter
Теперь у вас есть все необходимое для запуска ноутбука Jupyter! Чтобы запустить его, выполните следующую команду:
jupyter notebook
Если вы используете Jupyter в системе с установленным JavaScript, он все равно будет работать, но он может выдать ошибку, сообщающую, что для Jupyter Notebook требуется JavaScript:
OutputJupyter Notebook requires JavaScript.
Please enable it to proceed.
...
Чтобы игнорировать ошибку, вы можете нажать + Q +
и затем нажать + Y +
для подтверждения.
Журнал действий Jupyter Notebook будет распечатан на терминале. Когда вы запускаете Jupyter Notebook, он работает с определенным номером порта. Первая записная книжка, которую вы используете, обычно работает на порту ++
. Чтобы проверить конкретный номер порта, на котором работает Jupyter Notebook, обратитесь к выводу команды, использованной для его запуска:
Output[I NotebookApp] Serving notebooks from local directory: /home/sammy
[I NotebookApp] 0 active kernels
[I NotebookApp] The Jupyter Notebook is running at: http://localhost/
[I NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
Если вы используете Jupyter Notebook на локальном компьютере с Linux (не на Droplet), вы можете просто перейти к + localhost +
для подключения к Jupyter Notebook. Если вы используете Jupyter Notebook на дроплете, вам необходимо подключиться к серверу, используя SSH-туннелирование, как описано в следующем разделе.
На этом этапе вы можете оставить SSH-соединение открытым и оставить Jupyter Notebook включенным или выйти из приложения и перезапустить его после настройки SSH-туннелирования. Давайте сделаем это просто и остановим процесс Jupyter Notebook. Мы запустим его снова, как только у нас будет работать туннель SSH. Чтобы остановить процесс Jupyter Notebook, нажмите + CTRL + C +
, введите + Y +
и нажмите + ENTER +
для подтверждения. Будет отображено следующее:
Output[C 12:32:23.792 NotebookApp] Shutdown confirmed
[I 12:32:23.794 NotebookApp] Shutting down kernels
Шаг 4 - Подключение к серверу с использованием SSH-туннелирования
В этом разделе мы узнаем, как подключиться к веб-интерфейсу Jupyter Notebook с использованием SSH-туннелирования. Поскольку Jupyter Notebook работает на определенном порту в Droplet (например, +: 8888 +
, +: 8889 +
и т. Д.), SSH-туннелирование позволяет безопасно подключаться к порту Droplet.
В следующих двух подразделах описывается, как создать SSH-туннель из 1) Mac или Linux и 2) Windows. Пожалуйста, обратитесь к подразделу для вашего локального компьютера.
SSH-туннелирование с Mac или Linux
Если вы используете Mac или Linux, шаги по созданию туннеля SSH аналогичны https://www.digitalocean.com/community/tutorials/how-to-use-ssh-keys-with-digitalocean-droplets [ Как пользоваться SSH-ключами с DigitalOcean Droplets с использованием Linux или Mac], за исключением того, что в команду + ssh +
добавлены дополнительные параметры. В этом подразделе будут описаны дополнительные параметры, необходимые в команде + ssh +
для успешного туннелирования.
Туннелирование SSH может быть выполнено с помощью следующей команды SSH:
ssh -L :localhost: @
Команда + ssh +
открывает соединение SSH, но + -L +
указывает, что данный порт на локальном (клиентском) хосте должен быть перенаправлен на данный хост и порт на удаленной стороне (Droplet). Это означает, что все, что работает на втором номере порта (т.е. `) в Droplet появится на первом номере порта (т.е. `
) на вашем локальном компьютере. Вы должны изменить ` на порт, на котором работает Jupyter Notebook. При желании измените порт `
на один из ваших вариантов (например, если + 8000 +
используется другим процессом). Используйте порт, больший или равный + 8000 +
(то есть `, `
и т. Д.), Чтобы избежать использования порта, уже используемого другим процессом. «» - это ваше имя пользователя (т.е. sammy) в созданной вами капле, а `` - это IP-адрес вашей капли. Например, для имени пользователя ` и адреса сервера `
команда будет такой:
ssh -L :localhost: @
Если после выполнения команды + ssh -L +
ошибка не появляется, вы можете запустить Jupyter Notebook:
jupyter notebook
Теперь из веб-браузера на вашем локальном компьютере откройте веб-интерфейс Jupyter Notebook с помощью + http: // localhost: +
(или любого другого номера порта, который вы выбрали).
SSH-туннелирование с Windows и Putty
Если вы используете Windows, вы также можете легко создать SSH-туннель, используя Putty, как описано в https://www.digitalocean.com/community/tutorials/how-to-use-ssh-keys-with-putty-on-digitalocean -droplets-windows-users [Как использовать SSH-ключи с PuTTY в DigitalOcean Droplets (для пользователей Windows)].
Сначала введите 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, работающему на сервере.
Шаг 5 - Использование ноутбука Jupyter
В этом разделе рассматриваются основы использования ноутбука Jupyter. К этому моменту у вас должен быть запущен Jupyter Notebook, и вы должны быть подключены к нему с помощью веб-браузера. Jupyter Notebook очень мощный и имеет много функций. В этом разделе будут описаны основные функции, которые помогут вам начать пользоваться ноутбуком. Автоматически Jupyter Notebook покажет все файлы и папки в каталоге, из которого он запущен.
Чтобы создать новый файл записной книжки, выберите * Новый *> * Python 2 * в правом верхнем раскрывающемся меню:
изображение: https: //assets.digitalocean.com/articles/jupyter_notebook/create_python2_notebook.png [Создать новую записную книжку Python 2]
Это откроет блокнот. Теперь мы можем запустить код 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 [результаты уценки]
Вы можете использовать ячейки уценки, чтобы делать заметки и документировать свой код. Давайте реализуем это простое уравнение и напечатаем результат. Выберите * Вставить *> * Вставить ячейку ниже *, чтобы вставить и ячейку, и введите следующий код:
x = 2
y = x*x
print y
Чтобы запустить код, нажмите + CTRL + ENTER
. Следующее должно быть результатом:
изображение: https: //assets.digitalocean.com/articles/jupyter_notebook/equations_results.png [результаты простого уравнения]
Теперь у вас есть возможность включать библиотеки и использовать ноутбук, как в любой другой среде разработки Python!
Заключение
Поздравляем! Теперь вы сможете писать воспроизводимый код и заметки Python, используя разметку, используя блокнот Jupyter, работающий на Droplet. Чтобы быстро просмотреть блокнот Jupyter, выберите * Справка *> * Интерфейс пользователя * в верхнем меню навигации.