Jupyter notebook Paperill生成的笔记本能否与实时运行的内核一起输出?

Jupyter notebook Paperill生成的笔记本能否与实时运行的内核一起输出?,jupyter-notebook,jupyter,papermill,Jupyter Notebook,Jupyter,Papermill,当papermill生成笔记本时,会在输出路径中创建一个.ipynb文件,表示它没有在jupyter主页中运行。我更希望当笔记本完成执行后,它仍然运行在一个活动内核中,这样我就可以与其中的任何变量进行交互。现在,我必须重新运行单元格,以获取笔记本中生成的变量。这对于任何时间密集型笔记本电脑来说尤其麻烦 我正在使用execute_notebook函数生成笔记本 我的感觉是,这是不可能的,因为当新笔记本正在运行时,它在我的jupyter主页上从来没有显示“正在运行”。我所要求的即使是papermil

当papermill生成笔记本时,会在输出路径中创建一个.ipynb文件,表示它没有在jupyter主页中运行。我更希望当笔记本完成执行后,它仍然运行在一个活动内核中,这样我就可以与其中的任何变量进行交互。现在,我必须重新运行单元格,以获取笔记本中生成的变量。这对于任何时间密集型笔记本电脑来说尤其麻烦

我正在使用execute_notebook函数生成笔记本


我的感觉是,这是不可能的,因为当新笔记本正在运行时,它在我的jupyter主页上从来没有显示“正在运行”。我所要求的即使是papermill也能实现吗?或者有其他可扩展的方法来实现这一点吗?

保持内核运行听起来确实很有用,我也找不到这方面的支持

内核可能无法与任何用户界面(例如,您可以浏览到的任何本地端口)一起运行,因此,即使在执行后内核仍在运行,您也无法与它进行交互


但是,您似乎不需要重新运行保存的笔记本中的任何内容来恢复已计算的变量,因为您可以简单地使用
papermill.read_notebook
,no?

您可以按照实现一个链接到活动内核的自定义引擎,或者在执行后保留内核。这需要一点自定义代码来避免nbconvert停止内核和/或将目标内核传递到papermill的execute函数中。可能,但不是开箱即用。

据我所知,有几种选择。Papermill用于允许使用
Papermill.record()
在笔记本中记录变量,该功能已被弃用;我相信你可以得到一个旧版本,并且仍然使用它

他们建议的另一个选择是使用剪贴簿。你可以找到更多关于它的信息

您还可以使用
%store
magic:

最后,您可以使用python的上下文管理器功能简单地写入平面文件:

with open('<dir>', 'w') as file:
    file.write(<var_of_choice>)

import json    
with open(<out_path>, "a+") as file:
    json.dump(<var_of_choice>, file)
打开(“”,'w')作为文件的
:
file.write()
导入json
打开(,“a+”)作为文件:
json.dump(,文件)
如果您的笔记本电脑加载了大量数据,那么让内核运行可能是次优的