我正在服务器上的IPython笔记本中进行长时间运行的实验,典型的工作循环是:启动实验,去吃午饭,回来后检查进展情况,查看Facebook,查看电子邮件,再次查看Facebook,关闭计算机,回来后查看Facebook,检查进度,...
问题在于,当我关闭笔记本所在的浏览器窗口时,打印/日志输出将不再保存在笔记本中。
例如,在我的简单实验中:
import time
start_time = time.time()
for i in xrange(5):
print '%s seconds have passed' % (time.time()-start_time)
time.sleep(2)
print 'Done!'
如果我运行代码,关闭标签页,10秒钟后再回来,我只能看到笔记本上次保存时的输出。我期望看到的是:
0.000111818313599 seconds have passed
2.00515794754 seconds have passed
4.01105999947 seconds have passed
6.0162498951 seconds have passed
8.01735782623 seconds have passed
Done!
可能这个问题在未来的某个时刻会被修复,但在此期间,是否有一些简单的技巧可以使它在关闭浏览器后继续输出到笔记本输出?如果还能适用于内联图片就更好了。
persistent_print.py
显然是不够的,因为导入的两个函数capture_print
和reprint
都依赖于不在该文件中的CaptureStdOut
。那么,我需要安装整个artemis
框架才能让这个单独的模块工作吗? - DeltaIVCaptureStdOut
的模块是独立的,您可以编辑代码以摆脱get_artemis_data_path
),这应该很容易。或者,您可以使用pip install artemis-ml
直接安装artemis。 - Peter