非交互式运行IPython / JUpyter笔记本
有谁知道是否可以从命令行以非交互方式运行IPython / Jupyter笔记本,并将生成的.ipynb
文件与运行结果.ipynb
保存。 如果还不可能,那么使用phantomJS来实现有多难?有些东西可以打开和closures内核,还有一些可以打开或closuresWeb服务器?
更具体地说,我们假设我已经有一个笔记本original.ipynb
,我想重新运行该笔记本中的所有单元,并将结果保存在一个新的笔记本new.ipynb
,但是在命令行上使用一个命令而不需要要么在浏览器中进行交互,要么closures内核或Web服务器,并假定没有内核或Web服务器已经在运行。
示例命令:
$ ipython notebook run original.ipynb --output=new.ipynb
是的,这是可能的,而且很容易,它将(大部分)在2.0的IPython核心,我build议现在看看这些例子 。
[编辑]
现在在Jupyter NbConvert。 NbConvert附带有一组默认禁用的Preprocessor
,其中两个( ClearOutputPreprocessor
和ExecutePreprocessor
)是有意义的。 你可以通过c.<PreprocessorName>.enabled=True
(大写的是python)或者在命令行中使用--ExecutePreprocessor.enabled=True
在你的命令照常。
--ExecutePreprocessor.enabled=True
具有方便--execute
可以在最近版本的NbConvert上使用的执行别名。 如果需要,它可以与 – --inplace
例如,运行无头笔记本电脑后转换为html:
$ jupyter nbconvert --to=html --execute RunMe.ipynb
剥离输出后转换为PDF
$ ipython nbconvert --to=pdf --ClearOutputPreprocessor.enabled=True RunMe.ipynb
如果你设置了--profile=<your fav profile>
,这个(当然)可以通过派生一个<insert-your-language-here>
内核来处理非python内核。 由于需要重新运行笔记本,所以转换可能会很长。 您可以使用--to=notebook
选项来执行笔记本到笔记本的转换。
有各种其他选项(超时,允许错误,…),可能需要根据使用情况设置/取消设置。 查看文档,当然还有jupyter nbconert --help
和--help-all
for mor信息。
在这个function成为核心的一部分之前,我把一个小小的命令行应用程序放在一起,只是做你想要的。 这叫做runipy,你可以用pip install runipy
来安装它。 源和自述在github上 。
要涵盖一些function,例如并行工作者或input参数,您可以安装jupyter-runner
pip install jupyter-runner
github上的自述文件: https : //github.com/omar-masmoudi/jupyter-runner
您可以通过命令行运行iPython-Notebook-server:
ipython notebook --pylab inline
这将以非交互模式启动服务器,并在代码下面打印所有输出。 然后你可以保存包含代码和输出的.ipynb文件。