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

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


当前回答

现在有一个jupyter run子命令将执行一个笔记本。

jupyter run notebook.ipynb

关于这个命令的更多信息可以在Jupyter文档中找到。

其他回答

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

from boar.running import run_notebook

outputs = run_notebook("nb.ipynb")

如果你更新了你的笔记本,你不需要再次将它转换为python文件。


更多信息请浏览:

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

在你的终端运行ipython:

ipython

然后找到你的脚本并放在那里:

%run your_script.ipynb

从终端运行

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

默认超时时间为30秒。-1删除限制。

如果你想保存输出的笔记本到一个新的笔记本,你可以使用标志——output my_new_nb.ipynb

Nbconvert允许你使用——execute标志运行笔记本:

jupyter nbconvert --execute <notebook>

如果你想运行一个笔记本并生成一个新的笔记本,你可以添加——到笔记本:

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

或者如果你想用新的输出替换现有的笔记本:

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

因为这是一个非常长的命令,你可以使用别名:

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

我对这个主题做了一些研究,并写了一篇关于在命令行中运行Jupyter Notebook的4种方法的文章,下面是我的发现的总结。

1. 使用nbconvert

nbconvert包已经安装在Jupyter Notebook中。它可以用来执行笔记本电脑。此外,它有许多特点:

可以将笔记本导出为PDF或HTML, 可以隐藏代码在输出笔记本, 即使在单元格中有错误,也可以执行笔记本。

笔记本执行示例:

jupyter nbconvert --execute --to notebook --allow-errors your-notebook.ipynb 

上面的命令将输出your-notebook.nbconvert。Ipynb文件,即使有错误,也会执行所有单元格。

2. 利用造纸厂

造纸厂允许你参数化笔记本。您可以将变量定义为参数(使用单元格标记)。

示例命令:

papermill -p name Piotrek your-notebook.ipynb output-notebook.ipynb

注入参数的笔记本示例:

3.手动下载笔记本为.py脚本

有一个选项可以手动下载notebook为.py脚本:

下载后,您可以向文件添加执行权限,并将其作为命令行脚本运行。

4. 使用jupytext

jupytext包允许你同步。ipynb文件和。py文件。您不需要手动将笔记本转换为脚本。