没有项目描述
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
依赖项(甚至是可选的依赖项)都必须是
安装。尤其是pandoc和
node.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问题让我知道。