首页 文章

以非交互方式运行IPython / Jupyter笔记本

提问于
浏览
69

有没有人知道是否可以从命令行以非交互方式运行IPython / Jupyter笔记本,并将生成的 .ipynb 文件与运行结果一起保存 . 如果还不可能,使用phantomJS实现有多难,可以打开和关闭内核,以及打开和关闭Web服务器的东西?

更具体地说,我们假设我已经有一个笔记本 original.ipynb 并且我想重新运行该笔记本中的所有单元格并将结果保存在新的笔记本中 new.ipynb ,但是在命令行上使用一个命令执行此操作,而无需在浏览器或关闭内核或Web服务器,并假设没有内核或Web服务器已在运行 .

示例命令:

$ ipython notebook run original.ipynb --output=new.ipynb

4 回答

  • -5

    是的,它是可能的,而且很容易,它(大部分)将在2.0版的IPython核心中,我建议现在查看those examples .

    [编辑]

    $ jupyter nbconvert --to notebook --execute original.ipynb --output=new.ipynb
    

    它现在在Jupyter NbConvert . NbConvert带有一堆默认禁用的 Preprocessor ,其中两个( ClearOutputPreprocessorExecutePreprocessor )很有意思 . 您可以通过 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 nbconvert --help--help-allnbconvert online documentation .

  • 1

    在此功能成为核心的一部分之前,我整理了一个可以满足您需求的命令行应用程序 . 它被称为runipy,您可以使用 pip install runipy 进行安装 . source and readme are on github .

  • 59

    要覆盖并行工作程序或输入参数等某些功能,可以安装jupyter-runner

    pip install jupyter-runner
    

    github上的自述文件:https://github.com/omar-masmoudi/jupyter-runner

  • 20

    您可以通过命令行运行iPython-Notebook-server:

    ipython notebook --pylab inline
    

    这将以非交互模式启动服务器,所有输出都打印在代码下方 . 然后,您可以保存包含代码和输出的.ipynb文件 .

相关问题