我是一名研究生研究员,我想为我和同事可以快速搜索的所有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文件也会使我的文件结构混乱,并使我使用的内存量增加一倍。
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] 删除。
我来说两句