Python 如何从终端运行.ipynb Jupyter笔记本?

Python 如何从终端运行.ipynb Jupyter笔记本?,python,jupyter-notebook,ipython,nbconvert,Python,Jupyter Notebook,Ipython,Nbconvert,我在一个.ipynb文件中有一些代码,我已经不需要IPython笔记本的“交互式”功能了。我想直接从Mac终端命令行运行它 基本上,如果这只是一个.py文件,我相信我可以从命令行执行python filename.py。.ipynb文件是否有类似的功能?您可以从.ipynb导出所有代码,并将其另存为.py脚本。然后可以在终端中运行脚本 希望有帮助。通过命令行,您可以使用以下命令将笔记本转换为python: jupyter nbconvert --to python nb.ipynb 您可能

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


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

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


希望有帮助。

通过命令行,您可以使用以下命令将笔记本转换为python:

jupyter nbconvert --to python nb.ipynb

您可能必须安装python软件包:


nbconvert允许您使用
--execute
标志运行笔记本电脑:

jupyter nbconvert --execute <notebook>
或者,如果要用新输出替换现有笔记本:

jupyter nbconvert --execute --to notebook --inplace <notebook>
jupyter nbconvert--执行--到笔记本--就地
由于该命令非常长,因此可以使用别名:

alias nbx="jupyter nbconvert --execute --to notebook"
nbx [--inplace] <notebook>
alias nbx=“jupyter nbconvert--execute--to notebook”
nbx[--就地]

更新作者引用的评论以提高可视性:

作者的注释“这个项目是在Juyter的执行API开始的,这是现在推荐的方法,从命令行运行笔记本。考虑水果挞和不维护。”——Sebastian Palma < /P> 安装允许在终端上运行代码的runipy库

pip install runipy
在编译代码之后:

runipy <YourNotebookName>.ipynb
runipy.ipynb

你也可以试试cronjob。所有信息都是新版本的,而不是:

ipython nbconvert --to python <YourNotebook>.ipynb
ipython nbconvert——到python.ipynb
您可以使用ipython的jupyter instend:

jupyter nbconvert --to python <YourNotebook>.ipynb
jupyter nbconvert——到python.ipynb

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

jupyter nbconvert --execute --clear-output <notebook>.ipynb
--净输出 清除当前文件的输出并就地保存,覆盖现有笔记本


在终端运行ipython时:

ipython
然后找到脚本并放在那里:

%run your_script.ipynb

您还可以使用
boar
包在python代码中运行笔记本

从boar.running导入运行\u笔记本
输出=运行笔记本(“nb.ipynb”)
如果更新笔记本,就不必再次将其转换为python文件


更多信息,请访问:

从终端运行

jupyter nbconvert --execute --to notebook --inplace --allow-errors --ExecutePreprocessor.timeout=-1 my_nb.ipynb
默认超时为30秒-1取消了限制


如果您希望将输出笔记本保存到新笔记本,您可以使用标志
--output my_new\u nb.ipynb

我遇到了相同的问题,我发现了。与其他解决方案相比的优势在于,您可以在笔记本运行时看到结果。我发现这个功能很有趣,因为笔记本需要很长时间。它非常容易使用:

pip install papermill
papermill notebook.ipynb output.ipynb

它还有其他方便的选项,如将输出文件保存到Amazon S3、Google Cloud等。有关更多信息,请参见页面。

使用ipython

ipython--TerminalIPythonApp.file_to_run=.ipynb
通常,我更喜欢这个选项,因为它确实是自我描述的。如果希望使用较少的字符,请使用:

ipython-c“%run.ipynb”

这基本上是已经建议的(不幸的是有点隐藏)类似于这样的东西:?子命令
ipython nbconvert
不赞成jupyter nbconvert,我认为这个答案不正确。我意识到它可以工作,但问题是如何从终端运行.ipynb,而不是如何将其转换为.py然后运行。如果任何单元运行时间超过30秒,Nbconvert将失败,您可能需要添加
--executeProcessor.timeout=600
。最新的更新使其工作如下,你可以从笔记本文件中获得一个HTML。代码> Juyter NB皈ie-用03个字符串执行\打印\ \ \字符串。IPYNB作者的注释:“这个项目是在Juyter的执行API之前启动的,API现在是从命令行运行笔记本的推荐方法。这会将笔记本变成一个静态HTML页面文档,或者可以在中找到运行笔记本的这种编程方式。是否有方法指定要执行的单元格?例如,单元格10和以下所有单元格,或单元格10到单元格20的范围。此外,如果您有长时间运行的单元格,
--executeProcessor.timeout=[timeout\u in\u seconds]
(使用
-1
无限制)。最新的更新使其工作方式如下,您从笔记本文件
jupyter nbconvert--execute 03 Print\Formatting\with\Strings中获得一个HTML。ipynb
没有回答原始问题这是如何回答这个问题的?如何将其放入shell中script@baxx
ipython-c”%runyour_script.ipynb“
你能用这个做一个生成文件吗?伙计们,承认吧,如果没有这个答案,您将找不到注释,那么为什么不同时进行投票呢?:)我还想补充一点,指定笔记本的绝对路径是谨慎的(如果
ipython
不是“运行链”的唯一部分,它可以为您节省大量搜索时间(在我的例子中,
ipython
在从Kubernetes CronJob运行的bash脚本中,如果没有笔记本的完整绝对路径,它将失败)。
%run your_script.ipynb
jupyter nbconvert --execute --to notebook --inplace --allow-errors --ExecutePreprocessor.timeout=-1 my_nb.ipynb
pip install papermill
papermill notebook.ipynb output.ipynb