首页 > 解决方案 > 如何让jupyter单元输出不断更新

问题描述

我已经在 jupyter 单元的输出中看到了几个 streamz 以及简单代码更新的案例,但是当我自己尝试这个时,除非我运行一个循环或连续按 Ctrl-Enter 进行更新,否则我只会得到一个值输出。最简单的例子就是单元格中的一行代码:

psutil.cpu_percent()

我已经看到显示输出不断更新的视频和 GIF,显然没有额外的魔法或其他特殊设置,我希望看到我在 jupyter 实验室中的单元格以同样的方式更新。我究竟做错了什么?

更多背景知识:这始于我开始尝试复制Matthew Rocklin的Streaming Dataframes中的 streamz 示例。我尝试了以下代码:

source = Random(freq='5ms', interval='100ms')
source.x.sum()

在“Jupyter 集成和流输出”下的链接中查看页面中间的示例,您就会明白我的意思。在示例中,此代码在单元格下方生成一个不断更新的输出,但是当我尝试它时,它只提供一个值,只有在我再次运行单元格时才会更新。由于这并没有像宣传的那样工作,我尝试了我在 psutil 中看到的另一个示例,但这也不起作用。所以我认为我的 jupyter 设置一定有问题,但我不知道它可能是什么。再次,我意识到我可以使用循环来复制这种行为,但我想了解我做错了什么,以防止它像所示的那样简单地工作。

标签: pythonoutputjupyterlivepsutil

解决方案


我不确定你在找什么。这将每秒输出 cpu 百分比。但是会阻塞你当前的内核。

import psutil

while True:
    print(psutil.cpu_percent(interval=1.))

推荐阅读