我可以在命令行中运行 Jupiter 笔记本电脑单元吗?

我正在部署一个 Python 包,我想运行一个简单的测试,看看笔记本中的所有单元格是否都能正常运行。我想通过命令行测试这一点,因为我有问题运行在 virtualenv笔记本电脑。是否有简单的命令行方法来测试这一点?


主持人请注意: 这个问题已经被标记为“如何运行一个 ippynb-jupyter 笔记本电脑从终端”的副本。终端上的朱庇特笔记本? .然而,这个问题是在那个问题之前几天发布的(在2月18日16日2点49分被问到)(在2月22日16日3点35分被问到)。最多,该职位可能被标记为一个重复,如果被认为是这样,一个适当的行动将是 把两个问题合并起来,保持这个,原来的,作为主人

然而,这些问题 也许不会是重复的(其他作者的意图不清楚)。无论如何,这个问题和它的答案都特别针对 从终端执行木星笔记本中的细胞,而不是简单地将笔记本转换为 python 文件。

64076 次浏览

您可以使用 Runipy来完成此操作。

runipy将运行笔记本中的所有单元格。如果发生错误,进程将停止。

$ pip install runipy

$ runipy MyNotebook.ipynb

还有将输出文件保存为笔记本或 html 报告的命令:

$ runipy MyNotebook.ipynb OutputNotebook.ipynb

$ runipy MyNotebook.ipynb --html report.html

nbconvert(一个用于笔记本转换的木星工具)允许你在没有任何额外软件包的情况下做到这一点:

到你的终端机上打字

$jupyter nbtrans —— to book —— inplace ——执行 mynotebook.ipynb

来源

(感谢 Stephan 建议使用 --inplace标志)

注意 : 也就是说,我会尝试将您需要的所有内容转换为正确的脚本。木星笔记本被认为是用于探索和分享结果,而不是作为传统程序的替代品。

您也可以尝试 造纸厂,它允许您从命令行执行笔记本电脑,还可以传递参数:

例如:

$ papermill mynotebook.ipynb mynotebook_output.ipynb -p start "2017-11-01" -p end "2017-11-30"

您也可以在不传递任何参数的情况下运行它。

您可以使用 nbconvertipynb文件转换为 python 脚本,然后运行它。

jupyter nbconvert --to python notebook.ipynb

python3 notebook.py