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