如何从终端 运行 .ipynb Jupyter Notebook?

How to run an .ipynb Jupyter Notebook from terminal?

我在 .ipynb 文件中有一些代码,但我并不真正需要 IPython Notebook 的 "interactive" 功能。我想直接从 Mac 终端命令行 运行 它。

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

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

希望对您有所帮助。

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

jupyter nbconvert --to python nb.ipynb

https://github.com/jupyter/nbconvert

您可能需要安装 python mistune 软件包:

sudo pip install -U mistune

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>

更新引用作者的评论以获得更好的可见性:

Author's note "This project started before Jupyter's execute API, which is now the recommended way to run notebooks from the command-line. Consider runipy deprecated and unmaintained." – Sebastian Palma

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

pip install runipy

编译您的代码后:

runipy <YourNotebookName>.ipynb

你也可以试试cronjob。所有信息都是here

对于新版本而不是:

ipython nbconvert --to python <YourNotebook>.ipynb

您可以使用 jupyter 代替 ipython:

jupyter nbconvert --to python <YourNotebook>.ipynb

就我而言,最适合我的命令是:

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

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

如果你运行:

jupyter nbconvert --help

--clear-output Clear output of current file and save in place, overwriting the existing notebook.

在您的终端中 运行 ipython:

ipython

然后找到您的脚本并将其放在那里:

%run your_script.ipynb

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

from boar.running import run_notebook

outputs = run_notebook("nb.ipynb")

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


更多信息请访问:

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

从终端运行

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

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

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

我遇到了同样的问题,我找到了 papermill。与其他解决方案相比的优势在于您可以在笔记本 运行 时看到结果。当笔记本需要很长时间时,我发现这个功能很有趣。使用起来非常简单:

pip install papermill
papermill notebook.ipynb output.ipynb

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

使用ipython:

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

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

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

这基本上就是 Keto already suggested (unfortunately a little bit hidden) as a .

您也可以使用 jupytext https://jupytext.readthedocs.io/en/latest/index.html.

这样您就可以配对您的笔记本电脑。因此,对于每个 ipynb 文件,您都有一个 .py 文件以及一些注释。 .py 文件可以照常执行。 多花一份文件就可以享受两个世界的好处。

哦,顺便说一句,如果您使用版本控制,您只能提交 .py 具有良好差异的文件,而不是丑陋的 .ipynb 差异。

.py 文件中的语法与 Databricks notebooks 类似,你很熟悉它们...)