【问题标题】:Run some tasks in IPython Notebook in detached mode在 IPython Notebook 中以分离模式运行一些任务
【发布时间】: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


    【解决方案1】:

    我通常使用 linux 命令屏幕,它会打开一个可以在后台运行的不同 shell。

    例如,当您第一次进入 shell 时,您输入“screen”。然后它会给你一个新的终端。使用上面的命令在那里启动 ipython。运行后,在键盘上按 CTRL+A CTRL+D。然后程序开始在后台运行,您可以关闭终端。如果您想返回它,请在命令行中输入“screen -r”。

    【讨论】:

    • Stephan,也许我不清楚,但我问的是 iPython notebook - 这是一个基于浏览器的控制台。而且我发现无法使用基于控制台的浏览器从屏幕下方访问 iPython。
    【解决方案2】:

    我不知道这是否是 IPython 1.0 中的新功能,但在我的 IPython notebook 中,如果我调用你的函数f(),然后关闭浏览器,内核会在后台运行一段时间(我更改了到time.sleep(10)) 我看到生成了results.txt 文件。我认为您通常在控制台中启动的内核不会在您关闭浏览器窗口时停止。如果我弄错了,请告诉我。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-16
      • 2014-06-18
      • 1970-01-01
      • 2019-10-24
      • 2014-01-11
      • 2013-06-06
      相关资源
      最近更新 更多