如何从终端运行.ipynb Jupyter笔记本?

时间:2016-02-22 03:35:28

标签: python jupyter-notebook ipython nbconvert

我在.ipynb文件中有一些代码,并且我不需要IPython Notebook的“交互式”功能。我想直接从Mac终端命令行运行它。

基本上,如果这只是一个.py文件,我相信我可以从命令行执行python filename.py. .ipynb文件有类似的东西吗?

11 个答案:

答案 0 :(得分:115)

nbconvert允许您使用--execute标志运行笔记本:

jupyter nbconvert --execute <notebook>

如果您想要运行笔记本并制作新笔记本,可以添加--to notebook

jupyter nbconvert --execute --to notebook <notebook>

或者,如果您想使用新输出替换现有笔记本:

jupyter nbconvert --execute --to notebook --inplace <notebook>

由于这是一个很长的命令,你可以使用别名:

alias nbx="jupyter nbconvert --execute --to notebook"
nbx [--inplace] <notebook>

答案 1 :(得分:68)

从命令行,您可以使用以下命令将笔记本转换为python:

ipython nbconvert --to python <YourNotebook>.ipynb

您可能必须安装python mistune包:

sudo pip install mistune

答案 2 :(得分:28)

您可以从insertObjectAnnotation导出所有代码并将其另存为.ipynb脚本。然后,您可以在终端中运行该脚本。

code export sample

希望它有所帮助。

答案 3 :(得分:8)

对于新版本而不是:

ipython nbconvert --to python <YourNotebook>.ipynb

你可以使用ipython的jupyter instend:

jupyter nbconvert --to python <YourNotebook>.ipynb

答案 4 :(得分:3)

通过作者引用的评论进行更新,以获得更好的可见性:

  

作者注意“这个项目是在Jupyter的执行API之前启动的,现在是从命令行运行笔记本的推荐方法。考虑runipy已弃用且未维护。” - 塞巴斯蒂安·帕尔马

安装允许在终端上运行代码的runipy库

pip install runipy

刚编译完代码后:

runipy <YourNotebookName>.ipynb

您也可以尝试使用cronjob。所有信息均为here

答案 5 :(得分:2)

在您的终端中运行ipython:

ipython

然后找到您的脚本并放在其中:

%run your_script.ipynb

答案 6 :(得分:1)

您还可以使用boar包在python代码中运行笔记本。

from boar.running import run_notebook

outputs = run_notebook("nb.ipynb")

如果更新笔记本,则无需再次将其转换为python文件。


更多信息,位于:

https://github.com/alexandreCameron/boar/blob/master/USAGE.md

答案 7 :(得分:1)

使用 ipython

ipython --TerminalIPythonApp.file_to_run=<notebook>.ipynb

通常,我更喜欢这个选项,因为它确实是自我描述的。如果您喜欢使用较少的字符,请使用:

ipython -c "%run <notebook>.ipynb"

这基本上是 Keto 已经建议的(不幸的是有点隐藏)作为 comment

答案 8 :(得分:0)

对于我来说,最适合我的命令是:

jupyter nbconvert --execute --clear-output <notebook>.ipynb

为什么?此命令不会创建额外的文件(就像.py文件一样),并且每次执行笔记本时都将覆盖单元格的输出。

如果您运行:

jupyter nbconvert --help
  

-清除输出   清除当前文件的输出并保存到位,覆盖现有笔记本。

答案 9 :(得分:0)

从终端运行

jupyter nbconvert --execute --to notebook --inplace --allow-errors --ExecutePreprocessor.timeout=-1 my_nb.ipynb

默认超时为30秒。 -1消除了限制。

如果您希望将输出笔记本保存到新笔记本中,则可以使用标志--output my_new_nb.ipynb

答案 10 :(得分:0)

我遇到了同样的问题,并且发现了papermill。与其他解决方案相比的优势在于,您可以在笔记本计算机运行时看到结果。当笔记本电脑花费很长时间时,我发现此功能很有趣。这很容易使用:

pip install papermill
papermill notebook.ipynb output.ipynb

它还有其他方便的选项,例如将输出文件保存到Amazon S3,Google Cloud等。有关更多信息,请参阅页面。