Сегодня я попытаюсь познакомиться со средой веб-оболочки применительно к интерактивному интерпретатору ipython. Данная среда именуется, как Ipython Notebook, вроде как с ее помощью можно писать код и в тоже время удобно его отображать для просмотра, как для для демонстрации.
Я не претендую на 100% подачу материала, меня привлекло название и я попробовал разобрать в меру своих возможностей что есть что.
Что же посмотрим так ли это на самом деле и что у меня получится.
ekzorchik@desktop:~$ uname -a && lsb_release -a
Linux desktop 4.4.0-62-generic #83~14.04.1-Ubuntu SMP Wed Jan 18 18:10:30 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.5 LTS
Release: 14.04
Codename: trusty
ekzorchik@desktop:~$ sudo apt-get install python2.7 python-pip python-dev -y
ekzorchik@desktop:~$ python --version
Python 2.7.6
ekzorchik@desktop:~$ pip --version
pip 1.5.4 from /usr/lib/python2.7/dist-packages (python 2.7)
ekzorchik@desktop:~$ curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"
ekzorchik@desktop:~$ sudo python get-pip.py
ekzorchik@desktop:~$ pip --version
pip 9.0.1 from /usr/local/lib/python2.7/dist-packages (python 2.7)
ekzorchik@desktop:~$ sudo apt-get install ipython ipython-notebook -y
ekzorchik@desktop:~$ sudo pip install jupyter
Запускаю Jupyter Notebook:
ekzorchik@desktop:~$ whereis jupyter
jupyter: /usr/local/bin/jupyter
ekzorchik@desktop:~$ sudo jupyter notebook
Copy/paste this URL into your browser when you connect for the first time,
to login with a token:
http://localhost:8888/?token=4e8deafa3f6a873639594dfabe2cfe17efd5152d7a174c91
Копирую после чего данную гиперссылку в браузер Mozilla Firefox и вот она записная книжка:
Отобразить от имени кого запущена записная книжка и какой идентификатор авторизации:
ekzorchik@desktop:~$ jupyter notebook list
Currently running servers:
http://localhost:8888/?token=b68b70673ca317f8555794fb7d2565777bca3dbb25c47e29 :: /home/ekzorchik
Но вот только доступ в записную книжку возможен лишь локально на этой рабочей станции, а чтобы получить доступ с других систем, то нужно чтобы серверная часть была запущена с применением этого ключа:
ekzorchik@desktop:~$ jupyter notebook --ip='*'
А закрыть предыдущую открытую записную книжку можно по сочетанию клавиш Ctrl + C в том открытом окне командной строки.
Пробую подключить с другой системы к этой, а в ответ окно авторизации и какой же пароль нужно указывать:
А пароль получается из вывода выше команды: jupyter notebook list
Вот к примеру уже две записной книжке можно запустить:
ekzorchik@desktop:~$ jupyter notebook list
Currently running servers:
http://localhost:8889/?token=84013de600c817e6cd27a4339d713f529448a80ae50b3c54 :: /home/ekzorchik
http://localhost:8888/?token=b68b70673ca317f8555794fb7d2565777bca3dbb25c47e29 :: /home/ekzorchik
Выключаю одну:
Ctrl + C
Serving notebooks from local directory: /home/ekzorchik
0 active kernels
The Jupyter Notebook is running at: http://[all ip addresses on your system]:8889/?token=84013de600c817e6cd27a4339d713f529448a80ae50b3c54
Shutdown this notebook server (y/[n])? y
[C 15:34:50.057 NotebookApp] Shutdown confirmed
[I 15:34:50.058 NotebookApp] Shutting down kernels
Создаю в первом окне python скрипт:
New — Text File
#!/usr/bin/env python
import subprocess
print "Uname"
def uname_function():
uname = "uname"
uname_args = "-a"
print "Information about system\n"
subprocess.call([uname,uname_args])
uname_function()
Сохраняю: File – Save
Открываю консоль командной строки, да прямо из Web–интерфейса:
New — Terminal
ekzorchik@desktop:~$ pwd
/home/ekzorchik
ekzorchik@desktop:~$ ls
Desktop Documents Downloads examples.desktop Music Pictures Public Templates test.py Videos
ekzorchik@desktop:~$
ekzorchik@desktop:~$ chmod +x test.py
ekzorchik@desktop:~$ ./test.py
Uname
Information about system
Linux desktop 4.4.0-62-generic #83~14.04.1-Ubuntu SMP Wed Jan 18 18:10:30 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
Но я если честно не догнал, как я могу использовать данную записную книжку именуемую как Jupyter. А нет, спустя некоторое время я осознал что это не так. Я могу писать код, сохранять его в рабочем каталоге и одновременно тестировать его работу, плюс могу показать как и что я делаю в Web-ориентированном представлении. Ну как-то так. Хотя есть такое высказывание: если непонятно, зачем она, то скорее всего она вам не нужна. Вот это как раз и про меня. А потому закругляюсь, с уважением автор блога Олло Александр aka ekzorchik.