JupyterLab 3:如何获取正在运行的服务器列表



自JupyterLab 3。使用jupyter-server代替传统的笔记本服务器,下面的代码没有列出使用jupyter_server服务的服务器:

from notebook import notebookapp 
notebookapp.list_running_servers()
None

对于文件/笔记本名称仍然有效的是:

from time import sleep
from IPython.display import display, Javascript
import subprocess
import os
import uuid
def get_notebook_path_and_save():
magic = str(uuid.uuid1()).replace('-', '')
print(magic)
# saves it (ctrl+S)
# display(Javascript('IPython.notebook.save_checkpoint();')) # Javascript Error: IPython is not defined
nb_name = None
while nb_name is None:
try:
sleep(0.1)
nb_name = subprocess.check_output(f'grep -l {magic} *.ipynb', shell=True).decode().strip()
except:
pass
return os.path.join(os.getcwd(), nb_name)

但是它不是python的,也不快


如何获得当前运行的服务器实例-例如当前的笔记本文件?

迁移到jupyter_server应该像将notebook更改为jupyter_server,将notebookapp更改为serverapp和更改适当的配置文件一样容易-与服务器相关的代码库基本不变。对于列表服务器,只需使用:

from jupyter_server import serverapp
serverapp.list_running_servers()

最新更新