jupyter导出html/pdf报错KeyError: ‘state’
1.问题
今天,在colab怕了个深度学习代码,下载下来之后想要导出html交作业
jupyter-nbconvert --to html 1.ipynb # 注意你的是jupyter-nbconvert 还是jupyter nbconvert
却发现导出的时候一直报错:
Traceback (most recent call last):
File "/usr/local/bin/jupyter-nbconvert", line 8, in <module>
sys.exit(main())
File "/usr/local/lib/python3.9/site-packages/jupyter_core/application.py", line 264, in launch_instance
return super(JupyterApp, cls).launch_instance(argv=argv, **kwargs)
...
File "/usr/local/share/jupyter/nbconvert/templates/base/display_priority.j2", line 7, in block 'data_priority'
{%- for type in output.data | filter_data_type -%}
File "/usr/local/lib/python3.9/site-packages/nbconvert/filters/widgetsdatatypefilter.py", line 57, in __call__
metadata["widgets"][WIDGET_STATE_MIMETYPE]["state"]
具体是什么原因呢?可以自己去github的jupyter项目下的nbconvert去看看,网址如下:https://github.com/jupyter/nbconvert/issues/1731
2.如何解决呢?
使用如下命令删除.metadata.widgets
,即可
jq -M 'del(.metadata.widgets)' 1.ipynb > 1.fixed.ipynb
这是一个linux命令,相信大多数人都是使用的windows。这里推荐一个github的一个在线编码平台:codespace,地址:https://github.com/features/codespaces
现在该平台已经免费了,其终端支持linux命令。
同时,如果你在电脑上安装了子系统像是ubuntu,并使用wsl,也可以在终端输入wsl
进行操作
PS D:\code\Python-Project\文本数据挖掘> wsl
xcodd@DESKTOP-GKT9HQD:/mnt/d/code/Python-Project/文本数据挖掘$
xcodd@DESKTOP-GKT9HQD:/mnt/d/code/Python-Project/文本数据挖掘$ sudo apt-get update
xcodd@DESKTOP-GKT9HQD:/mnt/d/code/Python-Project/文本数据挖掘$ sudo apt-get install jq
xcodd@DESKTOP-GKT9HQD:/mnt/d/code/Python-Project/文本数据挖掘$ jq -M 'del(.metadata.widgets)' 1.ipynb > 1.fixed.ipynb
接着就可以进行导出了。
本文参考:https://github.com/jupyter/nbconvert/issues/1731
本文对其内容做了总结,并给出了windows如何使用linux命令来解决该问题