我有与此 stackoverflow 帖子相同的问题,并且我的 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 命令来停止它们,因为停止脚本是不够的......任何想法?