从命令行运行IPython笔记本
项目描述
runipy:将IPython作为脚本运行
IPython笔记本提供了一个交互式界面,用于Python解释器。
文献编程:IPython笔记本是编写“文献”程序的理想格式,其中代码是更大多媒体文档的一部分。 runipy 允许您直接运行此类程序,而无需首先将其转换为纯Python脚本。
报告生成: runipy 可以一次性运行笔记本并将其转换为HTML,从而使其自动化报告变得简单。
数据管道:如果您使用IPython笔记本创建数据管道, runipy 允许您自动化此管道而不会丢失笔记本格式。
要求
runipy 目前支持IPython版本2.4.x、3.2.x和当前4.x的开发版本。
安装
安装 runipy 最简单的方式是使用 pip
$ pip install runipy
命令行使用
要作为脚本运行 .ipynb 文件,请运行
$ runipy MyNotebook.ipynb
要将每个单元格的输出保存回笔记本文件,请运行
$ runipy -o MyNotebook.ipynb
要将笔记本输出保存为一个新的笔记本,请运行
$ runipy MyNotebook.ipynb OutputNotebook.ipynb
要运行 .ipynb 文件并生成一个 HTML 报告,请运行
$ runipy MyNotebook.ipynb --html report.html
传递参数
您可以通过环境变量将参数传递给笔记本。环境变量的使用取决于操作系统和shell,但在典型的UNIX-like环境中,可以在程序名称之前在命令行中传递它们
$ myvar=value runipy MyNotebook.ipynb
以下是从纯Python执行此操作的一种方法
from os import environ from subprocess import call environ['myvar'] = 'value' call(["runipy", "MyNotebook.ipynb"])
然后在笔记本中,要访问 myvar
from os import environ myvar = environ['myvar']
environ 只是一个 dict,因此您可以使用 .get() 在默认值上回退
from os import environ myvar = environ.get('myvar', 'default!')
标准输入/输出
runipy 可以读取 stdin 和 stdout 并位于 UNIX 管道中
$ runipy --stdout < MyNotebook.ipynb > OutputNotebook.ipynb $ cat MyNotebook.ipynb | runipy --stdout > OutputNotebook.ipynb
程序性使用
还可以使用以下方式从 Python 运行 IPython 笔记本
from runipy.notebook_runner import NotebookRunner from IPython.nbformat.current import read notebook = read(open("MyNotebook.ipynb"), 'json') r = NotebookRunner(notebook) r.run_notebook()
并且您可以使用以下方式启用 pylab
r = NotebookRunner(notebook, pylab=True)
笔记本存储在对象中,可以使用以下方式保存
from IPython.nbformat.current import write write(r.nb, open("MyOtherNotebook.ipynb", 'w'), 'json')
run_notebook() 有两个可选参数。第一个参数 skip_exceptions,默认值为 False。如果为 True,则会忽略异常,笔记本将在遇到异常后继续执行单元格。第二个参数是 progress_callback,它必须为 None 或一个接受一个参数的函数。该函数在执行每个单元格后调用,并带有刚刚评估的单元格的基于0的索引。这对于跟踪长时间运行的笔记本的进度非常有用。
致谢
部分代码基于 Min RK 的代码
感谢Kyle Kelley、Nitin Madnani、George Titsworth、Thomas Robitaille、Andrey Tatarinov、Matthew Brett、Adam Haney、Nathan Goldbaum、Adam Ginsburg、Gustavo Bragança、Tobias Brandt、Andrea Zonca、Aaron O’Leary、Simon Guillot、Fernando Correia、Takashi Nishibayashi、Simon Conseil 和 Thomas French 对补丁、文档修复和建议。
项目详情
runipy-0.1.5.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 202d6bb19cb77e25df8700b16a8f990f1eba9108cc7a587b320eb622cdae6789 |
|
MD5 | afef5be6b8103b9d7f5ba9d086f25d53 |
|
BLAKE2b-256 | abb7628258778b5b6da373dda3053241bf5f7d80ee65941ad3ad219fb3e9356f |