关于python:如何从终端运行.ipynb Jupyter Notebook?

How to run an .ipynb Jupyter Notebook from terminal?

我在一个.ipynb文件中有一些代码,我已经到了不需要ipython笔记本的"交互"功能的地步。我只想直接从Mac终端命令行运行它。

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


nbconvert允许您运行带有--execute标志的笔记本:

1
jupyter nbconvert --execute <notebook>

如果您想运行一个笔记本并生产一个新的笔记本,您可以添加--to notebook

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

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

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

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

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


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

1
ipython nbconvert --to python <YourNotebook>.ipynb

您可能需要安装python mistune包:

1
sudo pip install mistune


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

code export sample

希望它有帮助。


对于新版本,而不是:

1
ipython nbconvert --to python <YourNotebook>.ipynb

你可以用Jupyter instend of ipython:

1
jupyter nbconvert --to python <YourNotebook>.ipynb

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

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库

1
pip install runipy

编译完代码后:

1
runipy <YourNotebookName>.ipynb

你也可以试试cronjob。所有信息都在这里