¶
升级 pip 到最新的版本 (>=10.0.0) 后进行配置:
python -m pip install --upgrade pip
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
(2)输入pip install jupyter
;
jupyter notebook
;同时,默认浏览器会打开Jupyter Notebook窗口,说明Jupyter Notebook安装成功。
jupyter notebook --generate-config
,会发现C:\Users\用户名\ .jupyter
下多出了一个配置文件jupyter_notebook_config.py
;(2)打开这个配置文件,找到下面这句#c.NotebookApp.notebook_dir = ''
。
可以把它修改成c.NotebookApp.notebook_dir = 'D:\jupyter-notebook'
,当然具体的目录由自己创建的文件夹决定(需要自己创建)。
配置文件修改完成后,以后在jupyter notebook
中写的代码都会保存在该目录下。现在重新启动jupyter notebook
,就进入了新的工作目录;
cmd
,输入pip install jupyter_contrib_nbextensions
,等待安装成功;(2)安装完之后需要配置nbextension
(配置前要确保已关闭jupyter notebook
),在cmd
中输入jupyter contrib nbextension install --user --skip-running-check
,等待配置成功;
(3)在前两步成功的情况下,启动jupyter notebook
,会发现在选项栏中多出了Nbextension
的选项,点开该选项,并勾选Hinterland
,即可添加代码自动补全功能。
¶
Nbconvert 为 pip 打包,因此您可以使用以下命令安装它:
pip install nbconvert
重要提醒:
要解锁其全部功能,nbconvert 需要 Pandoc、TeX(特别是 XeLaTeX)和 Pyppeteer。这些必须单独安装。
¶
要将 markdown 转换为 HTML 以外的格式,nbconvert 使用 Pandoc(1.12.1 或更高版本)。
您可以从他们的网站获取 pandoc 。
¶
为了将笔记本转换为 PDF((with --to pdf
),nbconvert 使用 LaTeX 和 XeTeX 作为渲染引擎。
5.0 版中的新功能:我们使用 XeTeX 作为渲染引擎,而不是 pdfTeX(与早期版本一样)。XeTeX 可以通过原生操作系统库来访问字体,它对 OpenType 格式的字体和 Unicode 字符有更好的支持。
手动安装完整的 TeX 环境(包括 XeLaTeX 和必要的支持包)可能很棘手。幸运的是,有一些软件包可以让这变得更容易。这些软件包特定于不同的操作系统:
因为 nbconvert 依赖于标准 TeX 发行版中包含的包和字体,如果您没有完整的安装,您可能无法使用 nbconvert 的标准工具将笔记本转换为 PDF。
¶
要将笔记本转换为 PDF (with --to webpdf
),nbconvert 需要 Pyppeteer Chromium 自动化库。
Pyppeteer 使用特定版本的 Chromium。如果它没有找到合适的网络浏览器安装,如果将--allow-chromium-download
标志传递给命令行,它可以自动下载它。
要安装合适版本的 pyppeteer,您可以 pip install nbconvert[webpdf]
。
pip
从 PyPI安装:
pip install pyppeteer
或者从这个 github repo安装最新版本:
pip install -U git+https://github.com/pyppeteer/pyppeteer@dev
用法
注意:当你第一次运行 pyppeteer 时,如果在你的系统上没有找到它,它会下载最新版本的 Chromium (~150MB)。如果您不喜欢这种行为,请确保安装了合适的 Chrome 二进制文件。一种方法是
pyppeteer-install
在使用这个库之前运行命令。
完整的文档可以在这里找到。Puppeteer 的文档及其故障排除指南也是 pyppeteer 用户的重要资源。
¶
nbconvert
运行脚本的命令行语法是:
$ jupyter nbconvert --to FORMAT notebook.ipynb
这会将 Jupyter 笔记本文件notebook.ipynb
转换为字符串给出的输出格式FORMAT
。
¶
当前支持的输出格式有:
HTML,
LaTeX,
PDF,
WebPDF,
Reveal.js HTML slideshow,
Markdown,
Ascii,
reStructuredText,
executable script,
notebook.
Jupyter 还提供了一些用于输出格式的模板。这些可以通过附加--template
参数指定,并在下面的部分中列出。
¶
--to html
HTML 导出。
--template lab
(默认)
笔记本的完整静态 HTML 渲染。这看起来与 JupyterLab 交互式视图非常相似。
实验室模板支持额外--theme
选项,默认为light
. 这个额外的选项不仅允许您使用 JupyterLab 提供的默认主题light
或dark
主题,还允许您使用自定义主题。例如:
pip install jupyterlab-miami-nights
然后。--theme jupyterlab_miami_nights
--template classic
简化的 HTML,使用经典的 jupyter 外观。
--template basic
基本 HTML,以最少的结构和样式呈现。
--embed-images
如果提供了此选项,则将图像作为 base64 url 嵌入到生成的 HTML 文件中。
¶
--to latex
LaTeX出口。这会生成NOTEBOOK_NAME.tex
文件,准备导出。图像在文件夹中输出为 .png 文件。
--template article
(默认)
Latex 文章,源自 Sphinx 的 howto 模板。
--template report
Latex 报告,提供目录和章节。
笔记
nbconvert 使用pandoc在各种标记语言之间进行转换,因此 pandoc 在转换为 latex 或 reStructuredText 时是一个依赖项。
¶
--to pdf
通过 Latex 生成 PDF。支持与.--to latex
¶
--to webpdf
通过首先呈现为 HTML、呈现 HTML Chromium 无头并导出为 PDF 来生成 PDF。此导出器支持与.--to html
webpdf 导出器需要pyppeteer
Chromium 自动化库,可以通过nbconvert[webpdf]
.
¶
说明:
为了指定从笔记本单元到 Reveal.js 幻灯片的映射,请从 Jupyter 笔记本中选择菜单项
View –> Cell Toolbar –> Slideshow
。这将在每个单元格的右上角显示一个下拉菜单。从中可以选择“幻灯片”、“子幻灯片”、“片段”、“跳过”和“注释”。转换时,指定为“跳过”的单元格将不包含在内,“注释”将仅包含在演示者注释中,等等。
--to slides
这会生成一个 Reveal.js HTML 幻灯片。
运行此幻灯片需要一份reveal.js(4.x 版)的副本。
默认情况下,这将在 html 中包含一个脚本标记,该标记将直接从公共 CDN 加载reveal.js。
这意味着如果您将幻灯片包含在网页上,它们应该可以按预期工作。但是,某些功能(特别是演讲者备注和计时器)将无法在网站上使用,因为它们需要访问reveal.js 的本地副本。
演讲者笔记需要一份reveal.js 的本地副本。然后,您需要告诉 nbconvert
如何找到该本地副本。
计时器仅在您已经有演讲者笔记时才起作用,而且还需要本地 https 服务器。您可以在ServePostProcessorExample中阅读有关此内容的更多信息。
为了更清楚地说明这一点,让我们看一个示例,说明如何使用本地的reveal.js 副本获取演讲者笔记:SlidesWithNotesExample。
¶
假设您有一个your_talk.ipynb
要转换为幻灯片的笔记本。对于此示例,我们假设您在与要转换的笔记本相同的目录中工作(即,当您运行时, 显示在文件列表中)。ls .``your_talk.ipynb
首先,我们需要一份与您的幻灯片在同一目录中的reveal.js 副本。一种方法是在终端中使用以下命令:
git clone https://github.com/hakimel/reveal.js.git
cd reveal.js
git checkout 3.5.0
cd …
然后我们需要告诉 nbconvert 指向这个本地副本。为此,我们使用--reveal-prefix
命令行标志指向本地副本。
jupyter nbconvert your_talk.ipynb --to slides --reveal-prefix reveal.js
这将创建文件your_talk.slides.html
,您应该可以使用. 要访问演讲者备注, 请在幻灯片加载后按,它们应该会在新窗口中打开。open your_talk.slides.html``s
注意:这不会启用完全脱机运行的幻灯片。虽然您有一个reveal.js 的本地副本,但默认情况下,幻灯片需要通过公共CDN 访问mathjax、require 和jquery。解决这个用例是一个悬而未决的问题,并且总是鼓励PR 。
--post serve
¶
一旦你的演讲者笔记工作了,你可能会注意到你的计时器不起作用。计时器需要更多的基础设施;您需要从本地 https 服务器提供您本地的reveal.js 副本。
幸运nbconvert
的是,通过使用ServePostProcessor
. 为了激活这个服务器,我们将命令行标志附加到我们对 nbconvert 的调用中。--post serve
jupyter nbconvert your_talk.ipynb --to slides --reveal-prefix reveal.js --post serve
这将运行服务器,它将占用您运行命令的终端,直到您停止它。您可以通过按 两次来停止服务器。ctrl C
¶
--to markdown
简单的Markdown输出。Markdown 单元格不受影响,代码单元格缩进 4 个空格。图像在文件夹中输出为 .png 文件。
¶
--to asciidoc
ASCII 输出。图像在文件夹中输出为 .png 文件。
¶
--to rst
基本的 reStructuredText
输出。作为在 Sphinx 文档中嵌入笔记本的起点很有用。图像在文件夹中输出为 .png 文件。
说明:nbconvert 使用pandoc在各种标记语言之间进行转换,因此 pandoc 在转换为 LaTeX 或 reStructuredText 时是一个依赖项。
¶
--to script
将笔记本转换为可执行脚本。这是从笔记本中获取 Python(或其他语言,取决于内核)脚本的最简单方法。如果 Jupyter notebook 中有任何魔法,那么这可能只能从 Jupyter 会话中执行。
例如,要将 Julia 笔记本转换为 Julia 可执行脚本:
jupyter nbconvert --to script my_julia_notebook.ipynb
¶
--to notebook
3.0 版中的新功能。
这不会将笔记本本身转换为不同的格式,而是允许在笔记本上运行 nbconvert 预处理器,或者转换为其他笔记本格式。例如:
jupyter nbconvert --to notebook --execute mynotebook.ipynb
这将打开笔记本,执行它,捕获新的输出,并将结果保存在mynotebook.nbconvert.ipynb
. 指定--inplace
将覆盖输入文件而不是写入新文件。默认情况下, nbconvert
如果在执行单元格期间发生任何异常,将中止转换。如果您指定--allow-errors
(除了 --execute
标志之外),则转换将继续,并且任何异常的输出都将包含在单元格输出中。
以下命令:jupyter nbconvert --to notebook --nbformat 3 mynotebook
将以版本 3格式创建mynotebook.ipynb
in的副本mynotebook.v3.ipynb
如果要就地转换笔记本,可以将输出文件指定为与输入文件相同:
jupyter nbconvert --to notebook mynb --output mynb
请注意这一点,因为它将替换输入文件。
说明:nbconvert 使用pandoc在各种标记语言之间进行转换,因此 pandoc 在转换为 latex 或 reStructuredText 时是一个依赖项。
创建的输出文件nbconvert
将与笔记本具有相同的基本名称,并将放置在当前工作目录中。任何支持文件(图形等)都将放置在与笔记本具有相同基本名称的新目录中,后缀为_files
:
$ jupyter nbconvert notebook.ipynb
$ ls
notebook.ipynb notebook.html notebook_files/
对于简单的单文件输出,比如html、markdown等,可以将输出发送到标准输出:
$ jupyter nbconvert --to markdown notebook.ipynb --stdout
¶
可以从命令行指定多个笔记本:
$ jupyter nbconvert notebook*.ipynb
$ jupyter nbconvert notebook1.ipynb notebook2.ipynb
或通过配置文件中的列表,例如mycfg.py
,包含以下文本:
c = get_config()
c.NbConvertApp.notebooks = ["notebook1.ipynb", "notebook2.ipynb"]
并使用命令:
$ jupyter nbconvert --config mycfg.py
以前的下一个