2017-01-21 27 views
2

如何獲得當前正在運行的Jupyter筆記本服務器在Python中的列表?如何在python中獲取當前的jupyter筆記本服務器?

有一個jupyter-notebook命令列出當前筆記本服務器

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

這怎麼能在Python做沒有去命令行,並解析輸出?

回答

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服務器。 find的參數-mtime僅顯示最近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

相關問題