Ранее я уже смотрел что есть Jupyter Notebook, но то было на Ubuntu Trusty и Python был 2 версии, сейчас оптимизация заметки на Ubuntu Bionic и Python третьей версии

8 hg clone --insecure https://ekzorchik@172.35.35.8/hg/dproject

9 sudo ./dproject/default

ekzorchik@srv-bionic:~$ sudo chown -R $USER:$USER /home/$USER

ekzorchik@srv-bionic:~$ sudo apt-get install python3-pip python3-dev python3-nbconvert -y

ekzorchik@srv-bionic:~$ sudo -H pip3 install --upgrade pip

ekzorchik@srv-bionic:~$ sudo -H pip3 install virtualenv

ekzorchik@srv-bionic:~$ mkdir project

ekzorchik@srv-bionic:~$ cd project/

ekzorchik@srv-bionic:~/project$

Создаю виртуальное окружение для проекта и именую его как default

ekzorchik@srv-bionic:~/project$ virtualenv default

Using base prefix '/usr'

New python executable in /home/ekzorchik/project/default/bin/python3

Also creating executable in /home/ekzorchik/project/default/bin/python

Installing setuptools, pip, wheel...

done.

ekzorchik@srv-bionic:~/project$

Активирую проекта под именем default:

ekzorchik@srv-bionic:~/project$ source default/bin/activate

(default) ekzorchik@srv-bionic:~/project$

Устанавливаю внутри проекта default окружение Jupyter Notebook:

(default) ekzorchik@srv-bionic:~/project$ pip install jupyter

Запускаю Jupyter Notebook:

(default) ekzorchik@srv-bionic:~/project$ jupyter notebook

[I 11:50:33.463 NotebookApp] Writing notebook server cookie secret to /run/user/1000/jupyter/notebook_cookie_secret

[I 11:50:34.091 NotebookApp] Serving notebooks from local directory: /home/ekzorchik/project

[I 11:50:34.091 NotebookApp] The Jupyter Notebook is running at:

[I 11:50:34.092 NotebookApp] http://localhost:8888/?token=2cf44801a762abe0c5ded7f379337bddcda8bb425bd71f94

[I 11:50:34.092 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).

[W 11:50:34.101 NotebookApp] No web browser found: could not locate runnable browser.

[C 11:50:34.102 NotebookApp]

To access the notebook, open this file in a browser:

file:///run/user/1000/jupyter/nbserver-1276-open.html

Or copy and paste one of these URLs:

http://localhost:8888/?token=2cf44801a762abe0c5ded7f379337bddcda8bb425bd71f94

^C[I 11:51:58.776 NotebookApp] interrupted

Serving notebooks from local directory: /home/ekzorchik/project

0 active kernels

The Jupyter Notebook is running at:

http://localhost:8888/?token=2cf44801a762abe0c5ded7f379337bddcda8bb425bd71f94

Shutdown this notebook server (y/[n])? y

[C 11:52:02.946 NotebookApp] Shutdown confirmed

[I 11:52:02.948 NotebookApp] Shutting down 0 kernels

(default) ekzorchik@srv-bionic:~/project$

Но вот только доступ в записную книжку возможен лишь локально на этой рабочей станции, а чтобы получить доступ с других систем, то нужно чтобы серверная часть была запущена с применением этого ключа:

Создаю конфигурационный файл для Jupyter Notebook:

(default) ekzorchik@srv-bionic:~/project$ jupyter notebook --generate-config

Writing default config to: /home/ekzorchik/.jupyter/jupyter_notebook_config.py

(default) ekzorchik@srv-bionic:~/project$ nano ~/.jupyter/jupyter_notebook_config.py

(default) ekzorchik@srv-bionic:~/project$

#Снимаю символ комментария со строки ниже и выставляю значение с False на True

c.NotebookApp.allow_remote_access = True

(default) ekzorchik@srv-bionic:~/project$

После запускаю:

(default) ekzorchik@srv-bionic:~/project$ jupyter notebook --ip='*'

После с другой вкладки подключенной к текущей системы смотрю, а прослушивается ли порт 8888 на всех интерфейсах — ответ да! Значит я могу с основной системы подключиться с развернутому/запущенному Jupyter Notebook:

ekzorchik@srv-bionic:~$ sudo netstat -tulpn | grep 8888
tcp 0 0 0.0.0.0:8888 0.0.0.0:* LISTEN 1440/python3
tcp6 0 0 :::8888 :::* LISTEN 1440/python3

Подключаюсь через браузер где в строке адреса указываю URL следующего вида: http://172.33.33.4:8888 и в ответ получаю:

Авторизуюсь в запущенном Jupyter Notebook

Но как и в прошлый раз на Ubuntu Trusty Server мне нужно получить token пароль для входа:

ekzorchik@srv-bionic:~$ jupyter notebook list
Currently running servers:
http://localhost:8888/?token=e0b0d708ca3248dc158d97d6c40917eb7313be9ef862c60c :: /home/ekzorchik/project

где пароль это символ после знака равенства и до символов двоеточия, т. е.

E0b0d708ca3248dc158d97d6c40917eb7313be9ef862c60c — это пароль, копирую его в буфер обмена и вставляю на странице браузера:

Указываю Token в качестве пароля - не подходит, странно.

Не подходит, странно вроде так раньше работало. Читаю документацию и натыкаюсь на описание установки пароля на вход:

(default) ekzorchik@srv-bionic:~/project$ jupyter notebook password
Enter password: 712mdbdr@
Verify password: 712mbddr@
[NotebookPasswordApp] Wrote hashed password to /home/ekzorchik/.jupyter/jupyter_notebook_config.json
(default) ekzorchik@srv-bionic:~/project$ cat ~/.jupyter/jupyter_notebook_config.json
{
"NotebookApp": {
"password": "sha1:eb2e8554a139:f1163e3c064a220353bbc3284bf7487096297e88"
}
}(default) ekzorchik@srv-bionic:~/project$
(default) ekzorchik@srv-bionic:~/project$ jupyter notebook --ip='*'

Пробую авторизоваться с созданным паролем:

в поле Password: ввожу пароль, я указывал что он будет 712mbddr@ и нажимаю Log in

Пробую авторизоваться с созданным паролем:

и все получилось, я внутри:

и все получилось, я внутри:

Проверяю, как происходит работа:

New — Text File, Language — выбираю Python

и набираю код:

#!/usr/bin/python3
import subprocess
print("Ping host ekzorchik.ru")
code = subprocess.call(["ping","www.ekzorchik.ru","-c 2"])

После сохраняю: File — Save — Logout, но у меня почему-то не отрабатывает, но если нажать на логотип «Jupyter» то возвращается на главный экран проекта:

После сохраняю: File — Save — Logout, но у меня почему-то не отрабатывает

после New — Terminal -

ekzorchik@srv-bionic:~/project$
ekzorchik@srv-bionic:~/project$ cd default/
ekzorchik@srv-bionic:~/project/default$ ls
bin etc include lib share Untitled.ipynb untitled.txt
ekzorchik@srv-bionic:~/project/default$ mv untitled.txt test.py
ekzorchik@srv-bionic:~/project/default$ chmod +x test.py
ekzorchik@srv-bionic:~/project/default$ ./test.py
Ping host ekzorchik.ru
PING www.ekzorchik.ru (185.98.87.33) 56(84) bytes of data.
64 bytes from 185.98.87.33 (185.98.87.33): icmp_seq=1 ttl=57 time=6.48 ms
64 bytes from 185.98.87.33 (185.98.87.33): icmp_seq=2 ttl=57 time=3.77 ms
--- www.ekzorchik.ru ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 3.777/5.130/6.483/1.353 ms
ekzorchik@srv-bionic:~/project/default$

Слишком как-то много действий для запуска мне так кажется, выхожу из консоли:

ekzorchik@srv-bionic:~/project/default$ exit

exit

[CLOSED]

и закрываю эту вкладку окна браузера. Но в использовании Jupyter Notebook есть интерактивное средство написания кода: New — (Notebook) Python 3

в использовании Jupyter Notebook есть интерактивное средство написания кода: New — (Notebook) Python 3

Набираю код, а после нажимаю кнопку «RUN», написанное исполняется и возвращается в моем случае результат в виде нуля, т. е. Все успешно:

Код в интерактивной консоли отрабатывает

если через файл сохранить написанное в формате Python, то открыв скачанный файл увижу, что в самое начало файла добавились заголовки:

#!/usr/bin/env python

# coding: utf-8

Это кстати мне тоже информация на будущее. Вот из таких вот мелочей порой узнаешь больше чем знал до этого.

Также работает возможность посмотреть какие команды есть у импортированного модуля:

import subprocess

subprocess.<TAB>

Также работает возможность посмотреть какие команды есть у импортированного модуля:

Также можно посмотреть справку по команде в модуле:

Также можно посмотреть справку по команде в модуле:

Файлы вот этих вот проектов в консоли Python 3 сохраняется, как файлы с расширением *.ipynb

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