跳转到主要内容

从命令行运行IPython笔记本

项目描述

Travis Build Status Coveralls BSD License Version Join the chat at https://gitter.im/paulgb/runipy


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 (24.5 kB 查看哈希值)

上传时间

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面