Vin*_*ent 130 python ipython jupyter-notebook nbconvert
我在.ipynb文件中有一些代码,并且我不需要IPython Notebook的"交互"功能.我想直接从Mac终端命令行运行它.
基本上,如果这只是一个.py文件,我相信我可以从命令行执行python filename.py..ipynb文件有类似的东西吗?
min*_*nrk 138
nbconvert允许您使用--execute
标志运行笔记本:
jupyter nbconvert --execute <notebook>
Run Code Online (Sandbox Code Playgroud)
如果要运行笔记本并生成新笔记本,可以添加--to notebook
:
jupyter nbconvert --execute --to notebook <notebook>
Run Code Online (Sandbox Code Playgroud)
或者,如果要使用新输出替换现有笔记本:
jupyter nbconvert --execute --to notebook --inplace <notebook>
Run Code Online (Sandbox Code Playgroud)
由于这是一个非常长的命令,您可以使用别名:
alias nbx="jupyter nbconvert --execute --to notebook"
nbx [--inplace] <notebook>
Run Code Online (Sandbox Code Playgroud)
dit*_*kin 84
在命令行中,您可以使用以下命令将笔记本转换为python:
jupyter nbconvert --to python nb.ipynb
Run Code Online (Sandbox Code Playgroud)
您可能必须安装python mistune包:
sudo pip install -U mistune
Run Code Online (Sandbox Code Playgroud)
小智 38
在您的终端中运行 ipython:
ipython
Run Code Online (Sandbox Code Playgroud)
然后找到您的脚本并将其放在那里:
%run your_script.ipynb
Run Code Online (Sandbox Code Playgroud)
Mur*_*mel 28
使用ipython:
ipython --TerminalIPythonApp.file_to_run=<notebook>.ipynb
Run Code Online (Sandbox Code Playgroud)
通常,我更喜欢这个选项,因为它确实是自我描述的。如果您希望使用较少的字符,请使用:
ipython -c "%run <notebook>.ipynb"
Run Code Online (Sandbox Code Playgroud)
Vij*_*hal 10
对于新版本而不是:
ipython nbconvert --to python <YourNotebook>.ipynb
Run Code Online (Sandbox Code Playgroud)
你可以使用ipython的jupyter instend:
jupyter nbconvert --to python <YourNotebook>.ipynb
Run Code Online (Sandbox Code Playgroud)
就我而言,最适合我的命令是:
jupyter nbconvert --execute --clear-output <notebook>.ipynb
Run Code Online (Sandbox Code Playgroud)
为什么?此命令不会创建额外的文件(就像.py
文件一样),并且每次执行笔记本时都会覆盖单元格的输出。
如果你运行:
jupyter nbconvert --help
Run Code Online (Sandbox Code Playgroud)
--clear-output 清除当前文件的输出并保存到位,覆盖现有笔记本。
我遇到了同样的问题,我找到了papermill。与其他解决方案相比的优点是您可以在笔记本运行时看到结果。当笔记本需要很长时间时,我发现这个功能很有趣。这是非常容易使用:
pip install papermill
papermill notebook.ipynb output.ipynb
Run Code Online (Sandbox Code Playgroud)
它还具有其他方便的选项,例如将输出文件保存到 Amazon S3、Google Cloud 等。有关更多信息,请参阅该页面。
现在有一个jupyter execute
子命令将执行笔记本。
jupyter execute notebook.ipynb
Run Code Online (Sandbox Code Playgroud)
更新作者引用的评论以获得更好的可见性:
作者的注释“这个项目在 Jupyter 的执行 API 之前开始,现在是从命令行运行笔记本的推荐方式。考虑 runipy 已弃用和未维护。” – 塞巴斯蒂安·帕尔马
安装 runipy 库,允许在终端上运行您的代码
pip install runipy
Run Code Online (Sandbox Code Playgroud)
在编译你的代码之后:
runipy <YourNotebookName>.ipynb
Run Code Online (Sandbox Code Playgroud)
您也可以尝试 cronjob。所有信息都在这里
我对这个主题做了一些研究,并写了一篇关于在命令行中运行 Jupyter Notebook 的 4 种方法的文章,下面是我的发现的总结。
nbconvert
nbconvert包已安装在 Jupyter Notebook 中。它可以用来执行笔记本。此外,它还有很多特点:
笔记本执行示例:
jupyter nbconvert --execute --to notebook --allow-errors your-notebook.ipynb
Run Code Online (Sandbox Code Playgroud)
上面的命令将输出your-notebook.nbconvert.ipynb
文件并执行所有单元格,即使有错误也是如此。
papermill
Papermill允许您对笔记本进行参数化。您可以将变量定义为参数(带有单元格标签)。
命令示例:
papermill -p name Piotrek your-notebook.ipynb output-notebook.ipynb
Run Code Online (Sandbox Code Playgroud)
.py
脚本有一个选项可以手动下载笔记本作为.py
脚本:
下载后,您可以向文件添加执行权限并将其作为命令行脚本运行。
jupytext
jupytext包允许您将.ipynb
文件与.py
文件同步。您不需要手动将笔记本转换为脚本。
归档时间: |
|
查看次数: |
170547 次 |
最近记录: |