使 Jupyter notebook 以 html 格式执行

Posted

技术标签:

【中文标题】使 Jupyter notebook 以 html 格式执行【英文标题】:Make Jupyter notebook executable in html format 【发布时间】:2021-04-12 13:45:28 【问题描述】:

我正在尝试以 html 格式导出 Jupyter 笔记本,以获取它的可执行版本。到目前为止,我的做法是将 notebook 上传到 git 存储库中,然后使用 binder 获取其可执行版本。我想在我的网页上上传笔记本而不传递活页夹项目的链接。这可能吗?

我阅读了有关 nbinteract 并看到有关制作动态小部件的教程,但在这里我试图使笔记本中的整个代码动态化。

有什么建议吗?

【问题讨论】:

【参考方案1】:

你不能。 jupyter需要一个服务器来执行python代码。

如果您想在浏览器中执行一些 python 代码(或您的笔记本),您可以查看 https://github.com/gzuidhof/starboard-notebook 或 https://github.com/pyodide/pyodide。

pyodide 文档的摘录:

Pyodide 通过 WebAssembly 将 Python 3.8 运行时引入浏览器, 以及 Python 科学堆栈,包括 NumPy、Pandas、 Matplotlib、SciPy 和 scikit-learn。

【讨论】:

感谢您的回答。实际上,我有一个安装了jupyter服务器的sinology NAS。我的网站也使用相同的 NAS。同样在这种情况下是不是不可能整合它们?我想获得类似于本网站教科书节目的东西qiskit.org/textbook/ch-gates/… 是的,你可以看看瞧。 github.com/voila-dashboards/voila【参考方案2】:

您可以通过多种方式使用 Jupyter 内核从 HTML 页面中的代码单元执行代码:

    使用thebelab.js:此javascript 包允许您启动远程MyBinder 内核或连接到预先存在的Jupyter 服务器,然后将代码从HTML 页面发送到远程内核。远程内核执行代码,并将响应/代码输出返回到 HTML 页面,然后 HTML 页面可以渲染它。输出可以包括 HTML 小部件。

    使用 nbinteract 从笔记本创建一个 HTML 页面,该页面可以在远程 MyBinder 服务器上执行代码,以在 HTML 页面中为交互式 ipywidgets 提供动力。

    使用 jupyter-book 生成交互式 HTML 教科书/文档站点,该站点已配置为针对使用 thebelab.js 启动和管理的远程内核执行代码。

您也可以使用jupyterlitejupyterlite 是 JupyterLab 和 RetroLab UI 的浏览器内实现,完全在浏览器中运行。代码是针对 WASM 实现的内核执行的。 目前可以使用 Python (pyodide)、Javascript 和 p5 内核。

【讨论】:

以上是关于使 Jupyter notebook 以 html 格式执行的主要内容,如果未能解决你的问题,请参考以下文章

从 jupyter-notebook 下载 HTML 文件到本地

python安装jupyter notebooks(windows下)

jupyter notebook的使用

修改jupyter notebook 启动工作路径的方法

python Jupyter Notebook插件

Jupyter Notebook(iPython)