我在一个.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作为评论所建议的(不幸的是有点隐藏)。
其他回答
你也可以使用jupytext https://jupytext.readthedocs.io/en/latest/index.html。
这可以让你的笔记本配对。所以对于每个ipynb文件,你都有一个。py文件,以及一些注释。.py文件可以照常执行。 你可以享受两个世界的好处,但代价是额外的一个文件。
哦,顺便说一下,如果你使用版本控制,你只能提交带有漂亮diff的.py文件,而不是丑陋的.ipynb diff。
(在.py文件的语法类似于Databricks笔记本,如果你熟悉他们…)
Nbconvert允许你使用——execute标志运行笔记本:
jupyter nbconvert --execute <notebook>
如果你想运行一个笔记本并生成一个新的笔记本,你可以添加——到笔记本:
jupyter nbconvert --execute --to notebook <notebook>
或者如果你想用新的输出替换现有的笔记本:
jupyter nbconvert --execute --to notebook --inplace <notebook>
因为这是一个非常长的命令,你可以使用别名:
alias nbx="jupyter nbconvert --execute --to notebook"
nbx [--inplace] <notebook>
在批处理文件中粘贴以下内容。使用ipython运行。ipynb文件。
@echo on
call "C:\ProgramData\Anaconda3\Scripts\activate.bat"
ipython "path\test.ipynb"
pause
您还可以使用野猪包在python代码中运行您的笔记本。
from boar.running import run_notebook
outputs = run_notebook("nb.ipynb")
如果你更新了你的笔记本,你不需要再次将它转换为python文件。
更多信息请浏览:
https://github.com/alexandreCameron/boar/blob/master/USAGE.md
在你的终端运行ipython:
ipython
然后找到你的脚本并放在那里:
%run your_script.ipynb