我在一个.ipynb文件中有一些代码,并且我已经不需要IPython Notebook的“交互”特性了。我想直接从Mac终端命令行运行它。
基本上,如果这只是一个.py文件,我相信我可以从命令行执行python filename.py。对于.ipynb文件是否也有类似的东西?
我在一个.ipynb文件中有一些代码,并且我已经不需要IPython Notebook的“交互”特性了。我想直接从Mac终端命令行运行它。
基本上,如果这只是一个.py文件,我相信我可以从命令行执行python filename.py。对于.ipynb文件是否也有类似的东西?
当前回答
使用ipython:
ipython --TerminalIPythonApp.file_to_run=<notebook>.ipynb
通常情况下,我更喜欢这个选项,因为它是真正的自我描述。如果你喜欢使用较少的字符,请使用:
ipython -c "%run <notebook>.ipynb"
这基本上就是Keto作为评论所建议的(不幸的是有点隐藏)。
其他回答
就我而言,最适合我的命令是:
jupyter nbconvert --execute --clear-output <notebook>.ipynb
为什么?此命令不会创建额外的文件(就像.py文件一样),并且每次执行notebook时都会覆盖单元格的输出。
如果你运行:
jupyter nbconvert --help
——clear-output 清除当前文件的输出并保存到位,覆盖现有的笔记本。
您可以从.ipynb导出所有代码,并将其保存为.py脚本。然后可以在终端中运行脚本。
希望能有所帮助。
在批处理文件中粘贴以下内容。使用ipython运行。ipynb文件。
@echo on
call "C:\ProgramData\Anaconda3\Scripts\activate.bat"
ipython "path\test.ipynb"
pause
更新引用作者的评论,以获得更好的可视性:
作者注:“这个项目开始于Jupyter的执行API之前,这是现在从命令行运行笔记本的推荐方式。考虑runipy已弃用且无法维护。”——塞巴斯蒂安·帕尔马
安装允许在终端上运行代码的runipy库
pip install runipy
编译代码后:
runipy <YourNotebookName>.ipynb
你也可以试试cronjob。所有信息都在这里
从终端运行
jupyter nbconvert --execute --to notebook --inplace --allow-errors --ExecutePreprocessor.timeout=-1 my_nb.ipynb
默认超时时间为30秒。-1删除限制。
如果你想保存输出的笔记本到一个新的笔记本,你可以使用标志——output my_new_nb.ipynb