vscode-jupyter: Export for HTML and PDF fails

Environment data

  • VS Code version: 1.66.2 (Universal)
  • Jupyter Extension version (available under the Extensions sidebar): v2022.3.1000901801
  • Python Extension version (available under the Extensions sidebar): v2022.4.1
  • OS (Windows | Mac | Linux distro) and version: macOS Monterey 12.3.1
  • Python and/or Anaconda version: 3.9.12
  • Type of virtual environment used (N/A | venv | virtualenv | conda | …): -
  • Jupyter server running: Local
  • LaTeX version: MacTex Version 3.141592653 (TeX Live 2021)
  • nbconvert: 6.5.0
  • jupyter: 1.0.0
  • jupyter-core: 4.10.0

Expected behaviour

I want to export a pdf of my jupyter notebook (.ipynb) file, using the VSCode Jupyter Extension Export -> PDF.

Actual behaviour

The PDF as well as the HTML does not work.

Steps to reproduce:

  1. Open a Jupyter notebook in VSCode with the given prerequisites.
  2. Try to export the notebook to pdf.

Logs

Output for Jupyter Export to PDF using nbconvert: (in details)

Info 13:30:28: Process Execution: > /opt/homebrew/bin/python3 -m jupyter nbconvert /var/folders/1y/j228qgqn77jbvrqsk9b05b9c0000gn/T/3563a4c8-8fb9-41a5-ad7d-970042783579/SymbolicTranspNet.ipynb --to pdf --output tmp-1155Mn8FYXPkXL2t.pdf --output-dir /var/folders/1y/j228qgqn77jbvrqsk9b05b9c0000gn/T --debug
> /opt/homebrew/bin/python3 -m jupyter nbconvert /var/folders/1y/j228qgqn77jbvrqsk9b05b9c0000gn/T/3563a4c8-8fb9-41a5-ad7d-970042783579/SymbolicTranspNet.ipynb --to pdf --output tmp-1155Mn8FYXPkXL2t.pdf --output-dir /var/folders/1y/j228qgqn77jbvrqsk9b05b9c0000gn/T --debug
Error 13:30:28: Export failed [Error: [NbConvertApp] Searching ['/', '/Users/dguger/.jupyter', '/Users/dguger/Library/Python/3.9/etc/jupyter', '/opt/homebrew/opt/python@3.9/Frameworks/Python.framework/Versions/3.9/etc/jupyter', '/usr/local/etc/jupyter', '/etc/jupyter'] for config files
[NbConvertApp] Looking for jupyter_config in /etc/jupyter
[NbConvertApp] Looking for jupyter_config in /usr/local/etc/jupyter
[NbConvertApp] Looking for jupyter_config in /opt/homebrew/opt/python@3.9/Frameworks/Python.framework/Versions/3.9/etc/jupyter
[NbConvertApp] Looking for jupyter_config in /Users/dguger/Library/Python/3.9/etc/jupyter
[NbConvertApp] Looking for jupyter_config in /Users/dguger/.jupyter
[NbConvertApp] Looking for jupyter_config in /
[NbConvertApp] Looking for jupyter_nbconvert_config in /etc/jupyter
[NbConvertApp] Looking for jupyter_nbconvert_config in /usr/local/etc/jupyter
[NbConvertApp] Looking for jupyter_nbconvert_config in /opt/homebrew/opt/python@3.9/Frameworks/Python.framework/Versions/3.9/etc/jupyter
[NbConvertApp] Looking for jupyter_nbconvert_config in /Users/dguger/Library/Python/3.9/etc/jupyter
[NbConvertApp] Looking for jupyter_nbconvert_config in /Users/dguger/.jupyter
[NbConvertApp] Looking for jupyter_nbconvert_config in /
Traceback (most recent call last):
  File "/opt/homebrew/lib/python3.9/site-packages/traitlets/traitlets.py", line 537, in get
    value = obj._trait_values[self.name]
KeyError: 'template_paths'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/homebrew/bin/jupyter-nbconvert", line 8, in <module>
    sys.exit(main())
  File "/opt/homebrew/lib/python3.9/site-packages/jupyter_core/application.py", line 269, in launch_instance
    return super().launch_instance(argv=argv, **kwargs)
  File "/opt/homebrew/lib/python3.9/site-packages/traitlets/config/application.py", line 846, in launch_instance
    app.start()
  File "/opt/homebrew/lib/python3.9/site-packages/nbconvert/nbconvertapp.py", line 414, in start
    self.convert_notebooks()
  File "/opt/homebrew/lib/python3.9/site-packages/nbconvert/nbconvertapp.py", line 582, in convert_notebooks
    cls = get_exporter(self.export_format)
  File "/opt/homebrew/lib/python3.9/site-packages/nbconvert/exporters/base.py", line 101, in get_exporter
    if getattr(exporter(config=config), "enabled", True):
  File "/opt/homebrew/lib/python3.9/site-packages/nbconvert/exporters/templateexporter.py", line 341, in __init__
    super().__init__(config=config, **kw)
  File "/opt/homebrew/lib/python3.9/site-packages/nbconvert/exporters/exporter.py", line 117, in __init__
    self._init_preprocessors()
  File "/opt/homebrew/lib/python3.9/site-packages/nbconvert/exporters/templateexporter.py", line 507, in _init_preprocessors
    conf = self._get_conf()
  File "/opt/homebrew/lib/python3.9/site-packages/nbconvert/exporters/templateexporter.py", line 525, in _get_conf
    for path in map(Path, self.template_paths):
  File "/opt/homebrew/lib/python3.9/site-packages/traitlets/traitlets.py", line 577, in __get__
    return self.get(obj, cls)
  File "/opt/homebrew/lib/python3.9/site-packages/traitlets/traitlets.py", line 540, in get
    default = obj.trait_defaults(self.name)
  File "/opt/homebrew/lib/python3.9/site-packages/traitlets/traitlets.py", line 1580, in trait_defaults
    return self._get_trait_default_generator(names[0])(self)
  File "/opt/homebrew/lib/python3.9/site-packages/traitlets/traitlets.py", line 977, in __call__
    return self.func(*args, **kwargs)
  File "/opt/homebrew/lib/python3.9/site-packages/nbconvert/exporters/templateexporter.py", line 536, in _template_paths
    template_names = self.get_template_names()
  File "/opt/homebrew/lib/python3.9/site-packages/nbconvert/exporters/templateexporter.py", line 620, in get_template_names
    raise ValueError(
ValueError: No template sub-directory with name 'latex' found in the following paths:
	/Users/dguger/Library/Jupyter
	/Users/dguger/Library/Python/3.9/share/jupyter
	/opt/homebrew/opt/python@3.9/Frameworks/Python.framework/Versions/3.9/share/jupyter
	/usr/local/share/jupyter
	/usr/share/jupyter

	at a.executeCommand (/Users/dguger/.vscode/extensions/ms-toolsai.jupyter-2022.3.1000901801/out/extension.js:2:979748)
	at runMicrotasks (<anonymous>)
	at processTicksAndRejections (node:internal/process/task_queues:96:5)
	at async a.export (/Users/dguger/.vscode/extensions/ms-toolsai.jupyter-2022.3.1000901801/out/extension.js:2:986562)
	at async _.exportToFormat (/Users/dguger/.vscode/extensions/ms-toolsai.jupyter-2022.3.1000901801/out/extension.js:2:994081)
	at async _.performNbConvertExport (/Users/dguger/.vscode/extensions/ms-toolsai.jupyter-2022.3.1000901801/out/extension.js:2:993365)
	at async _.performExport (/Users/dguger/.vscode/extensions/ms-toolsai.jupyter-2022.3.1000901801/out/extension.js:2:993001)
	at async _.exportImpl (/Users/dguger/.vscode/extensions/ms-toolsai.jupyter-2022.3.1000901801/out/extension.js:2:992450)
	at async _.export (/Users/dguger/.vscode/extensions/ms-toolsai.jupyter-2022.3.1000901801/out/extension.js:2:992183)
	at async b.export (/Users/dguger/.vscode/extensions/ms-toolsai.jupyter-2022.3.1000901801/out/extension.js:2:95367)
	at async m._executeContributedCommand (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:85:30752)]
Error 13:30:28: If you have not installed xelatex (TeX) you will need to do so before you can export to PDF, for further instructions go to https://nbconvert.readthedocs.io/en/latest/install.html#installing-tex. 
To avoid installing xelatex (TeX) you might want to try exporting to HTML and using your browsers "Print to PDF" feature.

Output for Jupyter Export to HTML: (in details)

Info 13:29:29: Process Execution: > /opt/homebrew/bin/python3 -m jupyter nbconvert /var/folders/1y/j228qgqn77jbvrqsk9b05b9c0000gn/T/32053d2e-c8cc-4e57-abb2-79f9ea78cbdb/SymbolicTranspNet.ipynb --to html --output tmp-1155zNk12NwjKJlI.html --output-dir /var/folders/1y/j228qgqn77jbvrqsk9b05b9c0000gn/T --debug
> /opt/homebrew/bin/python3 -m jupyter nbconvert /var/folders/1y/j228qgqn77jbvrqsk9b05b9c0000gn/T/32053d2e-c8cc-4e57-abb2-79f9ea78cbdb/SymbolicTranspNet.ipynb --to html --output tmp-1155zNk12NwjKJlI.html --output-dir /var/folders/1y/j228qgqn77jbvrqsk9b05b9c0000gn/T --debug
Error 13:29:30: Export failed [Error: [NbConvertApp] Searching ['/', '/Users/dguger/.jupyter', '/Users/dguger/Library/Python/3.9/etc/jupyter', '/opt/homebrew/opt/python@3.9/Frameworks/Python.framework/Versions/3.9/etc/jupyter', '/usr/local/etc/jupyter', '/etc/jupyter'] for config files
[NbConvertApp] Looking for jupyter_config in /etc/jupyter
[NbConvertApp] Looking for jupyter_config in /usr/local/etc/jupyter
[NbConvertApp] Looking for jupyter_config in /opt/homebrew/opt/python@3.9/Frameworks/Python.framework/Versions/3.9/etc/jupyter
[NbConvertApp] Looking for jupyter_config in /Users/dguger/Library/Python/3.9/etc/jupyter
[NbConvertApp] Looking for jupyter_config in /Users/dguger/.jupyter
[NbConvertApp] Looking for jupyter_config in /
[NbConvertApp] Looking for jupyter_nbconvert_config in /etc/jupyter
[NbConvertApp] Looking for jupyter_nbconvert_config in /usr/local/etc/jupyter
[NbConvertApp] Looking for jupyter_nbconvert_config in /opt/homebrew/opt/python@3.9/Frameworks/Python.framework/Versions/3.9/etc/jupyter
[NbConvertApp] Looking for jupyter_nbconvert_config in /Users/dguger/Library/Python/3.9/etc/jupyter
[NbConvertApp] Looking for jupyter_nbconvert_config in /Users/dguger/.jupyter
[NbConvertApp] Looking for jupyter_nbconvert_config in /
Traceback (most recent call last):
  File "/opt/homebrew/lib/python3.9/site-packages/traitlets/traitlets.py", line 537, in get
    value = obj._trait_values[self.name]
KeyError: 'template_paths'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/homebrew/bin/jupyter-nbconvert", line 8, in <module>
    sys.exit(main())
  File "/opt/homebrew/lib/python3.9/site-packages/jupyter_core/application.py", line 269, in launch_instance
    return super().launch_instance(argv=argv, **kwargs)
  File "/opt/homebrew/lib/python3.9/site-packages/traitlets/config/application.py", line 846, in launch_instance
    app.start()
  File "/opt/homebrew/lib/python3.9/site-packages/nbconvert/nbconvertapp.py", line 414, in start
    self.convert_notebooks()
  File "/opt/homebrew/lib/python3.9/site-packages/nbconvert/nbconvertapp.py", line 582, in convert_notebooks
    cls = get_exporter(self.export_format)
  File "/opt/homebrew/lib/python3.9/site-packages/nbconvert/exporters/base.py", line 101, in get_exporter
    if getattr(exporter(config=config), "enabled", True):
  File "/opt/homebrew/lib/python3.9/site-packages/nbconvert/exporters/templateexporter.py", line 341, in __init__
    super().__init__(config=config, **kw)
  File "/opt/homebrew/lib/python3.9/site-packages/nbconvert/exporters/exporter.py", line 117, in __init__
    self._init_preprocessors()
  File "/opt/homebrew/lib/python3.9/site-packages/nbconvert/exporters/templateexporter.py", line 507, in _init_preprocessors
    conf = self._get_conf()
  File "/opt/homebrew/lib/python3.9/site-packages/nbconvert/exporters/templateexporter.py", line 525, in _get_conf
    for path in map(Path, self.template_paths):
  File "/opt/homebrew/lib/python3.9/site-packages/traitlets/traitlets.py", line 577, in __get__
    return self.get(obj, cls)
  File "/opt/homebrew/lib/python3.9/site-packages/traitlets/traitlets.py", line 540, in get
    default = obj.trait_defaults(self.name)
  File "/opt/homebrew/lib/python3.9/site-packages/traitlets/traitlets.py", line 1580, in trait_defaults
    return self._get_trait_default_generator(names[0])(self)
  File "/opt/homebrew/lib/python3.9/site-packages/traitlets/traitlets.py", line 977, in __call__
    return self.func(*args, **kwargs)
  File "/opt/homebrew/lib/python3.9/site-packages/nbconvert/exporters/templateexporter.py", line 536, in _template_paths
    template_names = self.get_template_names()
  File "/opt/homebrew/lib/python3.9/site-packages/nbconvert/exporters/templateexporter.py", line 620, in get_template_names
    raise ValueError(
ValueError: No template sub-directory with name 'lab' found in the following paths:
	/Users/dguger/Library/Jupyter
	/Users/dguger/Library/Python/3.9/share/jupyter
	/opt/homebrew/opt/python@3.9/Frameworks/Python.framework/Versions/3.9/share/jupyter
	/usr/local/share/jupyter
	/usr/share/jupyter

	at a.executeCommand (/Users/dguger/.vscode/extensions/ms-toolsai.jupyter-2022.3.1000901801/out/extension.js:2:979748)
	at runMicrotasks (<anonymous>)
	at processTicksAndRejections (node:internal/process/task_queues:96:5)
	at async a.export (/Users/dguger/.vscode/extensions/ms-toolsai.jupyter-2022.3.1000901801/out/extension.js:2:985907)
	at async _.exportToFormat (/Users/dguger/.vscode/extensions/ms-toolsai.jupyter-2022.3.1000901801/out/extension.js:2:994151)
	at async _.performNbConvertExport (/Users/dguger/.vscode/extensions/ms-toolsai.jupyter-2022.3.1000901801/out/extension.js:2:993365)
	at async _.performExport (/Users/dguger/.vscode/extensions/ms-toolsai.jupyter-2022.3.1000901801/out/extension.js:2:993001)
	at async _.exportImpl (/Users/dguger/.vscode/extensions/ms-toolsai.jupyter-2022.3.1000901801/out/extension.js:2:992450)
	at async _.export (/Users/dguger/.vscode/extensions/ms-toolsai.jupyter-2022.3.1000901801/out/extension.js:2:992183)
	at async b.export (/Users/dguger/.vscode/extensions/ms-toolsai.jupyter-2022.3.1000901801/out/extension.js:2:95367)
	at async m._executeContributedCommand (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:85:30752)]

About this issue

  • Original URL
  • State: closed
  • Created 2 years ago
  • Comments: 15 (5 by maintainers)

Most upvoted comments

@guger If the nbconvert command doesn’t work from the command line then it won’t be able to work from vs code either as we are calling the same command to do the convert. Might need to try re-installing jupyter or creating a new environment to see if that works. I’m closing this issue for now, but if the command is working from the command line, but not working from vs code, just ping back and I can reopen and investigate.

This is the stacktrace from your command:

jupyter nbconvert --to html SymMeasNodeNet.ipynb
Traceback (most recent call last):
  File "/opt/homebrew/lib/python3.9/site-packages/traitlets/traitlets.py", line 537, in get
    value = obj._trait_values[self.name]
KeyError: 'template_paths'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/homebrew/bin/jupyter-nbconvert", line 8, in <module>
    sys.exit(main())
  File "/opt/homebrew/lib/python3.9/site-packages/jupyter_core/application.py", line 269, in launch_instance
    return super().launch_instance(argv=argv, **kwargs)
  File "/opt/homebrew/lib/python3.9/site-packages/traitlets/config/application.py", line 846, in launch_instance
    app.start()
  File "/opt/homebrew/lib/python3.9/site-packages/nbconvert/nbconvertapp.py", line 414, in start
    self.convert_notebooks()
  File "/opt/homebrew/lib/python3.9/site-packages/nbconvert/nbconvertapp.py", line 582, in convert_notebooks
    cls = get_exporter(self.export_format)
  File "/opt/homebrew/lib/python3.9/site-packages/nbconvert/exporters/base.py", line 101, in get_exporter
    if getattr(exporter(config=config), "enabled", True):
  File "/opt/homebrew/lib/python3.9/site-packages/nbconvert/exporters/templateexporter.py", line 341, in __init__
    super().__init__(config=config, **kw)
  File "/opt/homebrew/lib/python3.9/site-packages/nbconvert/exporters/exporter.py", line 117, in __init__
    self._init_preprocessors()
  File "/opt/homebrew/lib/python3.9/site-packages/nbconvert/exporters/templateexporter.py", line 507, in _init_preprocessors
    conf = self._get_conf()
  File "/opt/homebrew/lib/python3.9/site-packages/nbconvert/exporters/templateexporter.py", line 525, in _get_conf
    for path in map(Path, self.template_paths):
  File "/opt/homebrew/lib/python3.9/site-packages/traitlets/traitlets.py", line 577, in __get__
    return self.get(obj, cls)
  File "/opt/homebrew/lib/python3.9/site-packages/traitlets/traitlets.py", line 540, in get
    default = obj.trait_defaults(self.name)
  File "/opt/homebrew/lib/python3.9/site-packages/traitlets/traitlets.py", line 1580, in trait_defaults
    return self._get_trait_default_generator(names[0])(self)
  File "/opt/homebrew/lib/python3.9/site-packages/traitlets/traitlets.py", line 977, in __call__
    return self.func(*args, **kwargs)
  File "/opt/homebrew/lib/python3.9/site-packages/nbconvert/exporters/templateexporter.py", line 536, in _template_paths
    template_names = self.get_template_names()
  File "/opt/homebrew/lib/python3.9/site-packages/nbconvert/exporters/templateexporter.py", line 620, in get_template_names
    raise ValueError(
ValueError: No template sub-directory with name 'lab' found in the following paths:
	/Users/dguger/Library/Jupyter
	/Users/dguger/Library/Python/3.9/share/jupyter
	/opt/homebrew/opt/python@3.9/Frameworks/Python.framework/Versions/3.9/share/jupyter
	/usr/local/share/jupyter
	/usr/share/jupyter