Jupyter – это популярный браузерный интерактивный блокнот для программирования, математики и данных. Это веб-приложение, которое позволяет нам создавать и обмениваться документами, которые содержат живой код, уравнения, визуализации и повествовательный текст. Он поддерживает несколько языков через плагины («ядра»), такие как Python, Ruby, Haskell, R, Scala и Julia. В этой статье мы покажем вам, как установить Jupyter в Ubuntu 18.04.
Некоторые из основных функций веб-приложения Jupyter Notebook:
- Редактирование кода в браузере с автоматической подсветкой синтаксиса, отступом и завершением/самоанализом табуляции.
- Легкое выполнение кода из вашего любимого веб-браузера
- Отображение результатов вычислений с использованием мультимедийных представлений, таких как HTML, LaTeX, PNG, SVG и т. д. Например, показатели качества публикации, отображаемые библиотекой matplotlib, могут быть встроены.
- Редактирование расширенного текста в браузере с использованием языка разметки Markdown, который может предоставлять комментарии к коду, не ограничивается простым текстом.
- Возможность легко включать математические обозначения в ячейки уценки, используя LaTeX, и визуализируется непосредственно MathJax.
Предпосылки:
- Ubuntu 18.04 с 2 ГБ памяти или выше
- Python 3
- Nginx
- SSH доступ с правами root
1. Войдите в систему через SSH и обновите систему.
Войдите в свой Ubuntu 18.04 VPS с SSH как пользователь root:
# ssh root@IP_Address -p Port_number
Вы можете проверить, установлена ли на вашем сервере правильная версия Ubuntu, с помощью следующей команды:
lsb_release -a
Вы должны получить этот вывод:
Distributor ID: Ubuntu Description: Ubuntu 18.04.1 LTS Release: 18.04 Codename: bionic
Затем выполните следующую команду, чтобы убедиться, что все установленные на сервере пакеты обновлены до последней доступной версии:
# apt update && apt upgrade
Давайте создадим sudoer для установки Jupyter Notebook, следуем инструкциям и используем надежный пароль для пользователя.
# adduser jupyter
Теперь давайте добавим нового пользователя в группу sudo:
# usermod -aG sudo jupyter
После добавления мы можем войти как jupyter и выполнить установку:
su - jupyter
$ sudo apt install python3-pip python3-dev
2. Создайте виртуальную среду Python для Jupyter
$ virtualenv jnotebook
$ source jnotebook/bin/activate
Теперь вы находитесь в виртуальной среде Python и готовы установить Jupyter Notebook.
3. Установите ноутбук Jupyter
(jnotebook) jupyter@ubuntu-andreyex:~$ pip instal jupyter
4. Запустите Jupyter Notebook
Это сделано! Теперь вы можете запустить Jupyter Notebook. Чтобы действительно запустить (запустить), введите следующую команду:
(jnotebook) jupyter@ubuntu-andreyex:~$ jupyter notebook
По умолчанию Jupyter Notebook настроен для работы на локальном хосте и порту 8888. Чтобы запустить его на определенном IP-адресе, вы можете выполнить эту команду:
(jnotebook) jupyter@ubuntu-andreyex:~$ jupyter notebook --ip='1.2.3.4'
Измените 1.2.3.4 на IP-адрес вашего сервера.
Используя ваш любимый веб-браузер, вы можете перейти по ссылке, указанной при запуске Jupyter.
На этом этапе вы получаете доступ к Jupyter Notebook с помощью токена. Начиная с версии 5.3 Notebook, мы можем создать пароль через веб-интерфейс или командную строку.
Перед созданием пароля нам нужно сначала сгенерировать файл конфигурации, мы можем запустить эту команду:
(jnotebook) jupyter@ubuntu-andreyex:~$ jupyter notebook --generage-config
Команда выше создаст файл jupyter_notebook_config.py. В этом руководстве этот файл сохраняется как /home/jupyter/.jupyter/jupyter_notebook_config.py. Возможность создания пароля при первом входе в систему может быть отключена, его необходимо включить, отредактировав /home/jupyter/.jupyter/jupyter_notebook_config.py. Перейдите к строке 68 и отредактируйте «NotebookApp.allow_password_change». Измените значение с False на True, и не забудьте раскомментировать строку. Затем сохраните файл.
Теперь мы можем запустить следующую команду, чтобы создать пароль, а затем снова запустить Jupyter Notebook.
(jnotebook) jupyter@ubuntu-andreyex:~$ jupyter notebook password
(jnotebook) jupyter@ubuntu-andreyex:~$ jupyter notebook --ip='1.2.3.4'
5. Настройте Jupyter Notebook для запуска в качестве службы
Если мы запустим команду «jupyter notebook» в SSH, приложение будет закрыто, когда мы отключимся от сеанса SSH.
Чтобы избежать этого, мы можем запустить команду в сеансе экрана или создать файл systemd. В этой статье мы создадим файл systemd, чтобы мы могли запускать Jupyter Notebook как сервис.
$ sudo nano /etc/systemd/system/jupyter.service
Затем вставьте в него следующие строки и сохраните файл:
[Unit] Description=Jupyter Notebook [Service] Type=simple PIDFile=/run/jupyter.pid ExecStart=/home/jupyter/jupyter/bin/jupyter-notebook --config=/home/jupyter/.jupyter/jupyter_notebook_config.py User=jupyter Group=jupyter WorkingDirectory=/home/jupyter/jnotebook Restart=always RestartSec=10 [Install] WantedBy=multi-user.target
После сохранения нам нужно включить и запустить сервис.
$ sudo systemctl daemon-reload $ sudo systemctl enable jupyter $ sudo systemctl start jupyter
6. Установка веб-сервера Nginx и настройка обратного прокси
Теперь Jupyter Notebook слушает только на локальном хосте. Чтобы получить к нему доступ через свой домен или поддомен и без ввода номера порта в веб-браузере, нам нужно настроить nginx в качестве обратного прокси-сервера.
$ sudo nano /etc/nginx/sites-enabled/yourdomain.ru.conf
Вставьте следующие строки в файл. Измените yourdomain.com на фактическое доменное имя, которое вы хотите использовать для доступа к Jupyter Notebook:
upstream jupyter { server 127.0.0.1:8888; } server { listen 80 default; server_name yourdomain.ru; access_log /var/log/nginx/yourdomain.ru.access.log; error_log /var/log/nginx/yourdomain.ru.error.log; location / { proxy_pass http://localhost:8888; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $http_host; proxy_http_version 1.1; proxy_redirect off; proxy_buffering off; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_read_timeout 86400; } }
Не забудьте сохранить вновь созданный файл конфигурации.
Проверьте конфигурацию nginx и, если все в порядке, перезапустите его.
$ sudo nginx -t $ sudo systemctl restart nginx
Теперь нам нужно отредактировать файл конфигурации Jupyter, чтобы мы могли получить к нему доступ, используя nginx в качестве обратного прокси-сервера.
$ sudo nano /home/jupyter/.jupyter/jupyter_notebook_config.py
Найдите «NotebookApp.allow_remote_access» и измените значение с False на True. Не забудьте раскомментировать строку.
Затем перезапустите Jupyter:
$ sudo systemctl restart jupyter
На этом этапе вы сможете получить доступ к Jupyter с вашим доменным именем по адресу http://yourdomain.ru. Для получения дополнительной информации о Jupyter, его функциях и конфигурации, пожалуйста, проверьте их официальную документацию.
Конечно