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

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


当前回答

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

jupyter run notebook.ipynb

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

其他回答

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

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

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

如果你运行:

jupyter nbconvert --help

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

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>

对于新版本,而不是:

ipython nbconvert --to python <YourNotebook>.ipynb

你可以用jupyter代替ipython:

jupyter nbconvert --to python <YourNotebook>.ipynb

我也有同样的问题,我找到了造纸厂。相对于其他解决方案的优点是,您可以在笔记本运行时看到结果。当笔记本花费很长时间时,我发现这个功能很有趣。它非常容易使用:

pip install papermill
papermill notebook.ipynb output.ipynb

它还,其他方便的选择输出文件保存到Amazon S3,谷歌云等。有关更多信息,请参阅页面。

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

from boar.running import run_notebook

outputs = run_notebook("nb.ipynb")

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


更多信息请浏览:

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