再次来自IPython并行引擎的实时输出?

时间:2015-05-27 07:41:17

标签: ipython-parallel

我和this stackoverflow post中的问题相同,而我的ipython(0.13.1)似乎确实没有准备好'结果错误,所以我使用了以下更改:

def wait_watching_stdout(ar, rc, dt=1, truncate=1000):
  while not ar.ready():
    rc.spin()
    stdouts = [ rc.metadata[msg_id]['stdout'] for msg_id in ar.msg_ids ]
    if not any(stdouts):
        continue
    # clear_output doesn't do much in terminal environments
    clear_output()
    print '-' * 30
    print "%.3fs elapsed" % ar.elapsed
    print ""
    for eid, stdout in zip(ar._targets, stdouts):
        if stdout:
            print "[ stdout %2i ]\n%s" % (eid, stdout[-truncate:])
    sys.stdout.flush()
    time.sleep(dt)

问题是rc.spin似乎对我的引擎做了一些坏事:他们开始疯狂地工作,挂起,然后我需要杀死ipcluster命令来阻止它们,因为停止脚本是不够的......有什么想法吗?

1 个答案:

答案 0 :(得分:0)

似乎是

操作符错误.....上面的代码似乎正在做它应该做的事情,尽管它并不完全是我在具体使用中所期望的。对不起错误的帖子