能否在IPython Notebook中运行一些长时间的任务,关闭浏览器,过一段时间后再次打开并显示这些任务的结果呢?
比如说,像这样的任务:
def f():
import time
time.sleep(100)
with open("result.txt", "w") as fh:
fh.write("Done.")
如果我正常运行任务,然后在完成之前关闭浏览器,再次打开它时,我将看不到 'result.txt'
。
如果我使用%px
魔法或并行执行 - 在完成之前关闭浏览器后,结果也不会出现。
有什么可用的扩展或技巧吗?还是我忽略了什么?
更新 1:
虽然 IPython 支持后台作业控制,但在我断开浏览器后,后台作业变得过时。我唯一能想到的是在关闭浏览器之前发出 %connect_info
然后在屏幕终端上连接。
ipython console --existing <ID>.json
并从那里运行我的作业。
更新2:
更有帮助的技巧是将ipython console
和作业控制结合起来。即我打开控制台并附加到与在浏览器中启动后台作业相同的会话,然后我可以自由关闭它,直到作业完成。
更新3:
自从iPython 1.0dev版本以来似乎可以正常使用,无需任何技巧。你只需要运行你想要的,关闭浏览器,它仍然在运行。