【发布时间】:2013-04-23 10:57:46
【问题描述】:
是否可以在 IPython Notebook 中运行一些较长的任务,关闭浏览器,然后过一段时间再次打开并显示这些任务的结果?
说,这样的任务:
def f():
import time
time.sleep(100)
with open("result.txt", "w") as fh:
fh.write("Done.")
如果我正常运行任务,并在完成前关闭浏览器,当我打开它时,我看不到'result.txt'。
如果我使用 %px 魔法或并行执行来运行它 - 如果我在完成之前关闭浏览器,同样没有结果。
有任何可用的扩展或黑客攻击吗?还是我错过了什么?
更新 1:
虽然有background jobs control support in IPython,但在我断开浏览器后后台作业会变得陈旧。
我唯一能想到的是在关闭浏览器之前发出%connect_info,然后使用
ipython console --existing <ID>.json
然后从那里运行我的工作。
更新 2:
更有用的 hack 是 ipython console 和作业控制的组合。 IE。我在浏览器中启动后台作业时打开控制台并附加到同一个会话,然后我可以关闭它直到作业完成。
更新 3:
它似乎从 iPython 1.0dev 版本开始工作,没有任何黑客攻击。你只需运行你想要的,关闭浏览器,它仍然运行。
【问题讨论】:
标签: python background ipython ipython-notebook ipython-magic