Jupyter 导出html 报错 KeyError: ‘state‘

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命令来解决该问题

你可能感兴趣的:(笔记,jupyter,python,ide)