Python 在长时间单元格执行期间显示消息
我正在制作一个jupyter笔记本,其中一个单元格需要一段时间才能生成一系列图形。为了让用户放心,平台没有出现故障,计算单元也没有冻结,我想每隔5秒做一次类似于打印('computing'),直到计算单元完成执行 在jupyter笔记本环境中,有没有一种简单的方法可以做到这一点?我已经探索了一些本机计时功能,但似乎没有任何东西能够做到这一点 您可以使用或来执行此操作,我在下面使用了线程Python 在长时间单元格执行期间显示消息,python,jupyter-notebook,Python,Jupyter Notebook,我正在制作一个jupyter笔记本,其中一个单元格需要一段时间才能生成一系列图形。为了让用户放心,平台没有出现故障,计算单元也没有冻结,我想每隔5秒做一次类似于打印('computing'),直到计算单元完成执行 在jupyter笔记本环境中,有没有一种简单的方法可以做到这一点?我已经探索了一些本机计时功能,但似乎没有任何东西能够做到这一点 您可以使用或来执行此操作,我在下面使用了线程 导入时间 从线程导入线程 def进度(停止): 尽管如此: 打印('单元格正在运行…') 时间。睡眠(5) 如
导入时间
从线程导入线程
def进度(停止):
尽管如此:
打印('单元格正在运行…')
时间。睡眠(5)
如果停止():
打破
停止线程=错误
t1=线程(目标=进度,参数=(lambda:stop_threads,)
t1.start()
#你在这儿干什么
打印('from main')
时间。睡眠(6)
打印('从主2')
停止线程=True
#加入你的线程
t1.join()
可能与您重复此代码运行时不会出错。False()给出错误。我无法安装线程包。原因是什么?删除键入错误的()。SorryThreading在python中是默认的,所以我不确定为什么不能导入它。好的,我修复了它:)很好的解决方案。但是请注意,当您在t1.start()
和stop\u threads=True
之间按Ctrl-C时,主线程将中止,第二个线程将永远运行,因此应用程序将挂起,直到您杀死Python解释器。如果你想让程序停止,你应该捕捉并处理键盘中断。实际上,您应该捕获所有可能的异常,但在这个特定的示例中,KeyboardInterrupt是我唯一能想到的;-)