2017-01-21 6 views
2

Как вы можете получить список запущенных в данный момент Jupyter ноутбуков в python?Как получить текущие серверы ноутбуков jupyter в python?

Существует jupyter-notebook команда список текущих серверов ноутбуков

machinename:~ username$ jupyter-notebook list 
http://localhost:8888 :: /Users/username/your/notebook/path 
http://localhost:8889 :: /Users/username/your/other/notebook/path 
... 

Как это может быть сделано в питона, не заходя в командной строке и анализа вывода?

ответ

6

Доступ список запущенных серверов ноутбуков с питоном

Список запущенных серверов для ноутбуков могут быть доступны из питона с помощью самой программы питона notebookapp по телефону list_running_servers().

from notebook import notebookapp 
servers = list(notebookapp.list_running_servers()) 
print servers 

[{u'base_url': u'/', 
    u'hostname': u'localhost', 
    u'notebook_dir': u'/Users/username/your/notebook/path', 
    u'pid':123, 
    u'port': 8888, 
    u'secure': False, 
    u'url': u'http://localhost:8888/'}, 
... 
{u'base_url': u'/', 
    u'hostname': u'localhost', 
    u'notebook_dir': u'/Users/username/your/other/notebook/path', 
    u'pid': 1234, 
    u'port': 8889, 
    u'secure': True, 
    u'url': u'http://localhost:8889/'}] 

Это также дает вам больше информации, чем интерфейс командной строки.     \ o/-nice!

0

Вы можете сделать это из командной строки с помощью следующей команды:

find `jupyter --runtime-dir` -mtime -5 | grep nbserver | xargs cat 

jupyter --runtime-dir возвращает каталог, в котором а Jupyter хранит множество файлов метаданных JSON о ядрах и серверах Jupyter. Параметр -mtimefind заставляет его показывать только файлы, измененные за последние 5 дней.

На моем MacBook я получаю следующий результат:

{ 
    "base_url": "/", 
    "url": "http://localhost:8888/", 
    "port": 8888, 
    "pid": 50017, 
    "secure": false, 
    "hostname": "localhost", 
    "notebook_dir": "/Users/myusername" 
}{ 
    "base_url": "/", 
    "hostname": "localhost", 
    "notebook_dir": "/Users/myusername", 
    "password": false, 
    "pid": 63644, 
    "port": 8889, 
    "secure": false, 
    "token": "058fc6cbd6d793c6ddda420ff6d5d3c42819be526b68602d", 
    "url": "http://localhost:8889/" 
} 

(у меня есть две сред с разными версиями Jupyter)

+0

Спасибо за дополнительную детализацию команды. Это обеспечивает выход лучше, чем текст, выводимый только моей исходной командой (т. Е. 'Json'), однако я попросил метод получить информацию без использования командной строки. Исходный вариант использования - это сделать из сценария python. Не нужно идти за пределы интерпретатора, если у нас его тоже нет. – tmthydvnprt

 Смежные вопросы

  • Нет связанных вопросов^_^