在命令行中执行Jupyter Notebook

时间:2019-02-19 19:47:06

标签: python jupyter-notebook nbconvert

我想以编程方式运行包含import语句的jupyter笔记本单元,并使用打开笔记本后导入的包,而不仅仅是将输出转换为新的ipython笔记本

当前,我正在使用nbconvert执行预先创建的Jupyter笔记本。执行笔记本的步骤如下-

jupyter nbconvert --execute --inplace test.ipynb

创建新笔记本的代码-

import nbformat as nbf
nb = nbf.v4.new_notebook()
nb['cells'] = [nbf.v4.new_markdown_cell(text),nbf.v4.new_code_cell(code,metadata={'editable':False,'deletable':False}) ]
nbf.write(nb, 'test.ipynb')

笔记本单元格中的代码块包含-

import pandas as pd
import numpy as np
import matplotlib as plt
%pylab inline
hist(normal(size=2000), bins=50)

输出单元格按预期显示直方图。 但是,打开笔记本后,我无法使用导入的软件包。有没有一种方法可以在命令行中执行笔记本,然后在打开笔记本后使用导入的程序包,而不必再次手动运行该单元格?

1 个答案:

答案 0 :(得分:0)

我能够通过安装jupyter扩展程序-[Jupyter笔记本扩展程序] [1] https://github.com/ipython-contrib/jupyter_contrib_nbextensions来解决此问题。

在启用了上面链接中的文档中指定的init_cell扩展名之后,我在笔记本创建代码中为要设置为Initialized cell的单元格添加了元数据标签“ init_cell”:True nbf.v4.new_code_cell(code,metadata={'editable':False,'deletable':False,'trusted':True,'init_cell':True})。 / p>

此外,我必须在命令行中执行行jupyter trust test.ipynb只是为了确保将笔记本设置为受信任的单元块,以便在笔记本加载时运行。

这将导致在加载笔记本后执行初始化的代码单元格块,从而使我能够使用导入的包和变量(如果有)而无需手动运行该单元格。