Jupyter实验室中的后台线程时钟

时间:2019-08-07 08:12:48

标签: python jupyter-notebook jupyter-lab

在我的Jupyter笔记本中,我想执行一些长时间运行的后台作业并将其状态显示在单元格中。我认为,在做一些困难的事情之前,我可以先从时钟开始。

我在一个单元格中有以下代码

import ipywidgets as widgets
import time
from datetime import datetime as dt
from IPython.display import HTML
from IPython.display import display
import threading

out = widgets.Output()

@out.capture(clear_output=True, wait=True)
def display_time():
    now = dt.now().strftime("%H:%M:%S")
    display(HTML(f"""<h1><center>{now}</center></h1>"""))

def run_time():
    while True:
        time.sleep(1)
        display_time()

out

当我打电话给run_time()时,我每秒得到的时间更新得很好,但是我的笔记本在该单元格上阻塞了。因此,我尝试了threading.Thread(target=run_time).start(),但这仅在我与笔记本进行交互时才更新时间。即使不进行任何单元交互,如何更新笔记本?

1 个答案:

答案 0 :(得分:0)

您想看看ipyrallel在笔记本中运行多个内核。

这里是solved issue

这里是documentation