如何从终端 运行 .ipynb Jupyter Notebook?
How to run an .ipynb Jupyter Notebook from terminal?
我在 .ipynb 文件中有一些代码,但我并不真正需要 IPython Notebook 的 "interactive" 功能。我想直接从 Mac 终端命令行 运行 它。
基本上,如果这只是一个 .py 文件,我相信我可以从命令行执行 python filename.py。 .ipynb 文件是否有类似的东西?
您可以从 .ipynb
导出所有代码并将其另存为 .py
脚本。然后你可以运行终端中的脚本。
希望对您有所帮助。
在命令行中,您可以使用以下命令将笔记本转换为 python:
jupyter nbconvert --to python nb.ipynb
https://github.com/jupyter/nbconvert
您可能需要安装 python mistune 软件包:
sudo pip install -U mistune
nbconvert 允许您 运行 带有 --execute
标志的笔记本:
jupyter nbconvert --execute <notebook>
如果你想运行一个笔记本并制作一个新的笔记本,你可以添加--to notebook
:
jupyter nbconvert --execute --to notebook <notebook>
或者,如果您想要用新输出替换现有笔记本:
jupyter nbconvert --execute --to notebook --inplace <notebook>
由于这是一个非常长的命令,您可以使用别名:
alias nbx="jupyter nbconvert --execute --to notebook"
nbx [--inplace] <notebook>
更新引用作者的评论以获得更好的可见性:
Author's note "This project started before Jupyter's execute API, which is now the recommended way to run notebooks from the command-line. Consider runipy deprecated and unmaintained." – Sebastian Palma
安装 runipy 库,允许运行你的代码在终端
pip install runipy
编译您的代码后:
runipy <YourNotebookName>.ipynb
你也可以试试cronjob。所有信息都是here
对于新版本而不是:
ipython nbconvert --to python <YourNotebook>.ipynb
您可以使用 jupyter 代替 ipython:
jupyter nbconvert --to python <YourNotebook>.ipynb
就我而言,最适合我的命令是:
jupyter nbconvert --execute --clear-output <notebook>.ipynb
为什么?此命令不会创建额外的文件(就像 .py
文件一样)并且每次执行笔记本时都会覆盖单元格的输出。
如果你运行:
jupyter nbconvert --help
--clear-output
Clear output of current file and save in place, overwriting the existing notebook.
在您的终端中 运行 ipython:
ipython
然后找到您的脚本并将其放在那里:
%run your_script.ipynb
您还可以在 python 代码中使用 boar
包到 运行 您的笔记本。
from boar.running import run_notebook
outputs = run_notebook("nb.ipynb")
如果您更新笔记本,则无需再次将其转换为 python 文件。
更多信息请访问:
https://github.com/alexandreCameron/boar/blob/master/USAGE.md
从终端运行
jupyter nbconvert --execute --to notebook --inplace --allow-errors --ExecutePreprocessor.timeout=-1 my_nb.ipynb
默认超时为 30 秒。 -1 取消限制。
如果您希望将输出笔记本保存到新笔记本中,您可以使用标志 --output my_new_nb.ipynb
我遇到了同样的问题,我找到了 papermill。与其他解决方案相比的优势在于您可以在笔记本 运行 时看到结果。当笔记本需要很长时间时,我发现这个功能很有趣。使用起来非常简单:
pip install papermill
papermill notebook.ipynb output.ipynb
它还有其他方便的选项,如将输出文件保存到 Amazon S3、Google 云等。有关详细信息,请参阅页面。
使用ipython:
ipython --TerminalIPythonApp.file_to_run=<notebook>.ipynb
通常情况下,我更喜欢这个选项,因为它确实是自我描述的。如果您喜欢使用较少的字符,请使用:
ipython -c "%run <notebook>.ipynb"
这基本上就是 Keto already suggested (unfortunately a little bit hidden) as a .
您也可以使用 jupytext
https://jupytext.readthedocs.io/en/latest/index.html.
这样您就可以配对您的笔记本电脑。因此,对于每个 ipynb
文件,您都有一个 .py
文件以及一些注释。 .py
文件可以照常执行。
多花一份文件就可以享受两个世界的好处。
哦,顺便说一句,如果您使用版本控制,您只能提交 .py
具有良好差异的文件,而不是丑陋的 .ipynb
差异。
(.py
文件中的语法与 Databricks notebooks 类似,你很熟悉它们...)
我在 .ipynb 文件中有一些代码,但我并不真正需要 IPython Notebook 的 "interactive" 功能。我想直接从 Mac 终端命令行 运行 它。
基本上,如果这只是一个 .py 文件,我相信我可以从命令行执行 python filename.py。 .ipynb 文件是否有类似的东西?
您可以从 .ipynb
导出所有代码并将其另存为 .py
脚本。然后你可以运行终端中的脚本。
希望对您有所帮助。
在命令行中,您可以使用以下命令将笔记本转换为 python:
jupyter nbconvert --to python nb.ipynb
https://github.com/jupyter/nbconvert
您可能需要安装 python mistune 软件包:
sudo pip install -U mistune
nbconvert 允许您 运行 带有 --execute
标志的笔记本:
jupyter nbconvert --execute <notebook>
如果你想运行一个笔记本并制作一个新的笔记本,你可以添加--to notebook
:
jupyter nbconvert --execute --to notebook <notebook>
或者,如果您想要用新输出替换现有笔记本:
jupyter nbconvert --execute --to notebook --inplace <notebook>
由于这是一个非常长的命令,您可以使用别名:
alias nbx="jupyter nbconvert --execute --to notebook"
nbx [--inplace] <notebook>
更新引用作者的评论以获得更好的可见性:
Author's note "This project started before Jupyter's execute API, which is now the recommended way to run notebooks from the command-line. Consider runipy deprecated and unmaintained." – Sebastian Palma
安装 runipy 库,允许运行你的代码在终端
pip install runipy
编译您的代码后:
runipy <YourNotebookName>.ipynb
你也可以试试cronjob。所有信息都是here
对于新版本而不是:
ipython nbconvert --to python <YourNotebook>.ipynb
您可以使用 jupyter 代替 ipython:
jupyter nbconvert --to python <YourNotebook>.ipynb
就我而言,最适合我的命令是:
jupyter nbconvert --execute --clear-output <notebook>.ipynb
为什么?此命令不会创建额外的文件(就像 .py
文件一样)并且每次执行笔记本时都会覆盖单元格的输出。
如果你运行:
jupyter nbconvert --help
--clear-output Clear output of current file and save in place, overwriting the existing notebook.
在您的终端中 运行 ipython:
ipython
然后找到您的脚本并将其放在那里:
%run your_script.ipynb
您还可以在 python 代码中使用 boar
包到 运行 您的笔记本。
from boar.running import run_notebook
outputs = run_notebook("nb.ipynb")
如果您更新笔记本,则无需再次将其转换为 python 文件。
更多信息请访问:
https://github.com/alexandreCameron/boar/blob/master/USAGE.md
从终端运行
jupyter nbconvert --execute --to notebook --inplace --allow-errors --ExecutePreprocessor.timeout=-1 my_nb.ipynb
默认超时为 30 秒。 -1 取消限制。
如果您希望将输出笔记本保存到新笔记本中,您可以使用标志 --output my_new_nb.ipynb
我遇到了同样的问题,我找到了 papermill。与其他解决方案相比的优势在于您可以在笔记本 运行 时看到结果。当笔记本需要很长时间时,我发现这个功能很有趣。使用起来非常简单:
pip install papermill
papermill notebook.ipynb output.ipynb
它还有其他方便的选项,如将输出文件保存到 Amazon S3、Google 云等。有关详细信息,请参阅页面。
使用ipython:
ipython --TerminalIPythonApp.file_to_run=<notebook>.ipynb
通常情况下,我更喜欢这个选项,因为它确实是自我描述的。如果您喜欢使用较少的字符,请使用:
ipython -c "%run <notebook>.ipynb"
这基本上就是 Keto already suggested (unfortunately a little bit hidden) as a
您也可以使用 jupytext
https://jupytext.readthedocs.io/en/latest/index.html.
这样您就可以配对您的笔记本电脑。因此,对于每个 ipynb
文件,您都有一个 .py
文件以及一些注释。 .py
文件可以照常执行。
多花一份文件就可以享受两个世界的好处。
哦,顺便说一句,如果您使用版本控制,您只能提交 .py
具有良好差异的文件,而不是丑陋的 .ipynb
差异。
(.py
文件中的语法与 Databricks notebooks 类似,你很熟悉它们...)