【发布时间】:2020-07-15 15:10:02
【问题描述】:
类似question
创建一个浮动进度小部件并在另一个进程中更新它, 为什么添加打印语句会更新进度条? 没有 print 语句可以做到这一点吗?
Jupyter 版本:5.3
import sys; sys.version
'3.7.3(默认,2019 年 3 月 27 日,22:11:17)\n[GCC 7.3.0]'
import multiprocessing as mp
from IPython.display import display
import ipywidgets as widgets
import time
progress = widgets.FloatProgress(value=0.0, min=0.0, max=1.0)
def work(progress):
total = 100
for i in range(total):
print(i)
time.sleep(0.2)
progress.value = float(i+1)/total
p = mp.Process(target = work, args=(progress,))
display(progress)
p.start()
【问题讨论】:
-
progress.value = float(i+1)/total是更新进度条的部分,print语句对进度条没有影响。 -
如果没有打印语句,进度小部件不会改变(work() 在不同的进程中运行)
-
你说的很对!道歉。
标签: python jupyter-notebook multiprocessing jupyter ipywidgets