我正在使用Jupyter小部件编写界面,用户可以配置一堆设置然后点击“运行”按钮。在点击该按钮时,会调用另一个模块中实现的函数。该函数需要一些时间才能运行,因此我使用了tqdm
包为其添加了进度条。但不幸的是,当我点击“运行”时,这个进度条现在显示在另一个终端中,而不是在单元格的输出中。是否有方法使进度条在同一个单元格输出中显示?
我正在使用Jupyter小部件编写界面,用户可以配置一堆设置然后点击“运行”按钮。在点击该按钮时,会调用另一个模块中实现的函数。该函数需要一些时间才能运行,因此我使用了tqdm
包为其添加了进度条。但不幸的是,当我点击“运行”时,这个进度条现在显示在另一个终端中,而不是在单元格的输出中。是否有方法使进度条在同一个单元格输出中显示?
tqdm
有一个子模块与 jupyter 集成: https://github.com/tqdm/tqdm#ipython-jupyter-integration。如果您已启用小部件,则应该可以直接使用它。只需将任何 tqdm 调用替换为其相应的 tqdm.notebook
子模块,即可导入。
from tqdm.notebook import trange, tqdm
取代
from tqdm import trange, tqdm
假设您在笔记本中直接调用tqdm,并且该调用未嵌入到其他模块代码中。 如果是这种情况,您可能需要通过传递参数或修补tqdm调用来解决。
tqdm.auto
也很方便。 - krassowskipip install ipywidgets
然后执行jupyter nbextension enable --py widgetsnbextension
最后重启Jupyter。 - dasWesen