在Flask中渲染jupyter ipynb int html

乔纳森·惠勒

我是一名研究生研究员,我想为我和同事可以快速搜索的所有ipynb文件建立一个只读索引。

我可以使用此命令将ipynb转换为html

jupyter nbconvert --format=basic my_notebook.ipynb

然后,我得到一个可以用Flask服务器呈现的html文件(带有额外的模板,css,目录,索引等)。但是,我不想每次制作/升级它们时都将所有ipynb文件手动转换为html文件。我宁愿让Flask服务器搜索目录,找到所有ipynb文件,然后向我显示目录树,然后在目录树中单击笔记本时,执行ipynb->笔记本转换并呈现html。

我的问题是:如何在运行时将保存的jupyter笔记本文件转换notebook_filename为html,并将该html存储notebook_html_contents在Flask中?有没有比做更好的方法了Popen.subprocess

我了解缓存的好处,但是我准备写文件的频率可能是阅读文件的两倍。一堆html文件也会使我的文件结构混乱,并使我使用的内存量增加一倍。

m01

nbviewer

nbviewer可以让您完全按照我的想法去做:按需渲染笔记本,并为您提供一个导航到它们的界面。

虽然默认情况下用于从在线资源渲染笔记本,但它确实具有让您遍历和渲染本地笔记本的--localfiles=/path/to/your/notebooks选项:只需使用该选项运行它,然后导航到http:// localhost:8080 / localfile即可获得目录浏览器让您单击.ipynb文件以查看它们。

localhost如果合适,请替换为正在运行nbviewer的计算机的IP)

快速示例(使用Docker):

docker pull jupyter/nbviewer
docker run -p 8080:8080 jupyter/nbviewer python3 -m nbviewer --port=8080 --localfiles=/tmp

在另一个终端:

docker cp ~/path/to/some/notebook.ipynb <name of container>:/tmp

现在,浏览至http:// localhost:8080 / localfile

客制化

当然,您可能希望根据情况选择使用本地安装,而不是使用Docker。还可以通过运行nbviewer--help并调整命令行选项来满足您的需求。

奖励:自定义首页

注意:nbviewer的实际首页(http:// localhost:8080)来自JSON文件。您可能会发现更喜欢以下内容的JSON文件:

{"title": "nbviewer",
 "subtitle": "My Notebooks",
 "text": "Click on the link below",
 "show_input": false,
 "sections":[
   {
     "header":"My local notebooks",
     "links":[
       {
         "text": "Starting directory",
         "target": "localfile",
         "img": "/static/img/example-nb/fitting.png"
       }
     ]
   }
 ]
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Jupyter - 将当前的 ipynb 文件导出到笔记本中的 html

将另存为.HTML文件的jupyter笔记本转换为.IPYNB

如何从终端运行.ipynb Jupyter Notebook?

在Jupyter中将ipynb转换为pdf

无法在 vscode 上渲染 ipynb 文件中的图像

双击(acOS)在Anaconda Jupyter Notebook中打开.ipynb

如何在Spyder中打开.ipynb文件?

在 VSCODE 中以 JSON 格式打开的 ipynb 文件

Jupyter Notebook:导入.ipynb文件并在其他给出错误的.ipynb文件中访问该方法

渲染存储在 Database Flask SQLAlchemy 中的 HTML

如何从.ipynb(Jupyter Notebook)制作可执行的Python文件?

HTML Python/Flask 傳遞值 (int)

在jupyter中打开时无法查看文件夹中的ipynb文件

如何在Jupyter(R)中渲染LaTeX / HTML?

为什么我不能在Pycharm中创建jupyter笔记本并正确打开ipynb?

在jupyter笔记本中,按Tab键打印“ ipynb_checkpoints /”,而不是自动完成

导入错误:无法从 jupyter 笔记本中的“app”(app.ipynb)导入名称“app”

如何在bitbucket中显示ipynb笔记本文件?

nbstripout:.gitattributes中的`diff = ipynb`是做什么的?

如何在 vs 代码(ipynb)中解决这个问题?

推送的 .ipynb 文件在 GitHub 中无法正确呈现的问题

从天蓝色数据块中的另一个 ipynb 笔记本导入 ipynb 文件

在 Flask IMAP 应用程序中渲染 html

IPython笔记本:将HTML笔记本转换为ipynb

VSCODE JUPYTER - 如何在笔记本 (.ipynb) 中显示与 VSCode 中的 Python (.py) 相同的自动完成?

如何在VS Code编辑器中设置Jupyter Notebook(.ipynb)单元格输出的颜色?

在 Chrome 中打开的 Jupyter notebook http://localhost:8889/notebooks/test.ipynb?variable1+variable2:如何获取 url?

如何从Jupyter笔记本上的* .IPYNB文件执行* .PY文件?

PyCharm 2019.1 CE:没有创建/编辑Jupyter Notebook(* .ipynb)文件的选项?