我在一个.ipynb文件中有一些代码,并且我已经不需要IPython Notebook的“交互”特性了。我想直接从Mac终端命令行运行它。
基本上,如果这只是一个.py文件,我相信我可以从命令行执行python filename.py。对于.ipynb文件是否也有类似的东西?
我在一个.ipynb文件中有一些代码,并且我已经不需要IPython Notebook的“交互”特性了。我想直接从Mac终端命令行运行它。
基本上,如果这只是一个.py文件,我相信我可以从命令行执行python filename.py。对于.ipynb文件是否也有类似的东西?
当前回答
在命令行中,你可以使用以下命令将笔记本转换为python:
jupyter nbconvert --to python nb.ipynb
https://github.com/jupyter/nbconvert
你可能需要安装python mistune包:
sudo pip install -U mistune
其他回答
对于新版本,而不是:
ipython nbconvert --to python <YourNotebook>.ipynb
你可以用jupyter代替ipython:
jupyter nbconvert --to python <YourNotebook>.ipynb
更新引用作者的评论,以获得更好的可视性:
作者注:“这个项目开始于Jupyter的执行API之前,这是现在从命令行运行笔记本的推荐方式。考虑runipy已弃用且无法维护。”——塞巴斯蒂安·帕尔马
安装允许在终端上运行代码的runipy库
pip install runipy
编译代码后:
runipy <YourNotebookName>.ipynb
你也可以试试cronjob。所有信息都在这里
从终端运行
jupyter nbconvert --execute --to notebook --inplace --allow-errors --ExecutePreprocessor.timeout=-1 my_nb.ipynb
默认超时时间为30秒。-1删除限制。
如果你想保存输出的笔记本到一个新的笔记本,你可以使用标志——output my_new_nb.ipynb
我对这个主题做了一些研究,并写了一篇关于在命令行中运行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文件。您不需要手动将笔记本转换为脚本。
您可以从.ipynb导出所有代码,并将其保存为.py脚本。然后可以在终端中运行脚本。
希望能有所帮助。