【问题标题】:JupyterLab 3: how to get the list of running serversJupyterLab 3:如何获取正在运行的服务器列表
【发布时间】:2024-01-20 05:22:01
【问题描述】:

由于使用 JupyterLab 3.x jupyter-server 代替了经典的 notebook 服务器,以下代码没有列出使用 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)

但这不是pythonic也不是快速


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

【问题讨论】:

    标签: python-3.x jupyter-notebook jupyter-lab jupyter-server


    【解决方案1】:

    迁移到jupyter_server 应该像将notebook 更改为jupyter_servernotebookappserverapp 并更改适当的configuration files 一样简单——与服务器相关的代码库基本上没有变化。在列出服务器的情况下,只需使用:

    from jupyter_server import serverapp
    serverapp.list_running_servers()
    

    【讨论】: