没有项目描述

RunNotebook的Python项目详细描述


笔记本Sphinx扩展名

安装

此软件包在pypi上提供:https://pypi.python.org/pypi/RunNotebook

使用pip安装:

pip install RunNotebook

将扩展名添加到您的conf.py

extensions=[# Import both'RunNotebook',# or import each directive individually# 'RunNotebook.notebook_sphinxext',# 'RunNotebook.notebookcell_sphinxext',# ...]

您的conf.py中的可选配置:

# Run notebook configuration# The template used when exporting from nbconvert#   full  - Outputs the full HTML document [Default]#   basic - Outputs a single div (with no additional resources)run_notebook_export_template='basic'# Default: 'full'# Display the source links to the generated evaluated filesrun_notebook_display_source_links=False# Default: True

查看示例sphinx项目中的conf.py文件,了解如何 与你的狮身人面像融合。

文档中的代码片段

这包了两个有用的Sphinx扩展:notebook 以及notebook-cell。这些扩展对于嵌入整个 分别在Sphinx文档中的笔记本或单个笔记本单元。

在过去,将示例脚本包含在 版本控制文档的。例如,可以包括代码 sphinx文档中使用rstcode-block指令的片段:

..code-block::pythonforiinrange(5):printi

虽然这会产生一个语法突出显示的python脚本,该脚本嵌入到sphinx中 文档,它不运行代码或提供任何工具来检查 代码正确。

Jupyter笔记本为 识字编程,嵌入代码输入、输出和解释文本 变成一个文件。在文档中包含笔记本是很有诱惑力的 批发。但是,这种方法存在一些问题 好。很难对笔记本进行版本控制-如果笔记本 输出包含大量数据,差异很容易快速增长, 生成一个不方便的大型存储库。此外,更新 笔记本需要手动重新计算所有笔记本单元格,保存 笔记本,如果有什么变化就提交。版本控制 笔记本也不能保证笔记本中的代码仍然是 功能性——一个记录不断发展的代码库的笔记本的真正问题 测试覆盖率不高。

使用Sphinx扩展自动运行笔记本

此包中包含的扩展使包含未评估的 文档中的笔记本或简短的python代码片段。两个扩展 使用nbconvert编写 评估笔记本电脑,并将评估后的笔记本电脑转换为 适合嵌入sphinx文档的html。

依赖关系

此扩展依赖于Jupyter

注意,所有Jupyter依赖项(甚至是可选的依赖项)都必须是 安装。尤其是pandocnode.js必须可用,因为它们由 NBConvert公司

示例

假设我想在我的 文档。为此,请将以下内容添加到任何sphinx structuredtext 文档:

..notebook:: example.ipynb

在预处理期间,sphinx将计算notebok,将其转换为html,并且 将其嵌入文档中notebook指令所在的位置 使用。

如果一个完整的笔记本没有意义或者如果你想更紧密地连接 作为文档源的脚本,可以使用notebook-cell 嵌入单手机迷你笔记本:

..notebook-cell::

   for i in range(5):
     print i

这将把代码片段转换为笔记本,计算笔记本,以及 然后将结果嵌入到文档中。请注意,笔记本电脑没有 当前接受用户命名空间,因此运行代码所需的所有导入 必须包含在源中。

有关完整的、有效的 使用基本狮身人面像配置的示例。

已知问题

这些扩展使用nbconvert html的“完整”html输出版本 输出。这包括完整的笔记本css。有一些css monkeypatching 这恰好减少了笔记本css对文档的影响 可能与文档主题冲突。如果事实证明 MonkeyPatching很脆弱,在您首选的文档中存在视觉问题 主题,请通过打开github问题让我知道。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java使用CSPRNG中的序列种子PRNG安全吗?   java如何使JTable列大小与内容精确(或紧密)匹配?   java Android textview具有两种不同大小的文本   java在任意事物的列表(数组)中创建关联的最佳方法是什么?   java保存可扩展字符串?   java成员类(内部类)如何访问外部类的实例变量?   java使用Android 6.0(API级别23)使用rest的最佳方式是什么   java为什么我会收到“学习记录”。Student@25a43blb'尝试显示链接列表中的所有对象时?   java如何将SVG文本转换为SVG路径?   java Paypal返回URL参数支付状态   java Libgdx:导出到可运行Jar   java JPA获取连接实体的最小/最大属性   附加到类型变量的java编号?   java Object[]到底是什么?   java如何在安卓中的片段和活动之间共享数据   java使用MinGW为windows构建linux库   java将变量值传递给eval函数   java仅在转换完成时使方法返回   Java二维数组对角线