I am running a python azure function which is running a jupyter notebook via the nbconvert
API. This was working for a time, although without deploying new code I have started to get the following error:
No template sub-directory with name 'lab' found in the following paths:
/home/.local/share/jupyter
/usr/local/share/jupyter
/usr/share/jupyter
The code I am using to achieve this is:
from nbconvert.preprocessors import ExecutePreprocessor
from nbconvert import HTMLExporter
...
dl = DictLoader({'footer':
"""
{%- extends 'full.tpl' -%}
{% block input_group %}
{%- if cell.metadata.get('nbconvert', {}).get('show_code', False) -%}
((( super() )))
{%- endif -%}
{% endblock input_group %}
{% block output_group %}
<style> .output_prompt{visibility:hidden;}</style>
{{ super() }}
{% endblock output_group %}
"""})
...
html_exporter = HTMLExporter(extra_loaders=[dl], template_file='footer')
html_exporter.template_name = 'classic'
with open(JUPYTER_DIR + NOTEBOOK_NAME) as f:
nb = nbformat.read(f, as_version=4)
ep = ExecutePreprocessor(timeout=600, kernel_name='python')
ep.preprocess(nb, {'metadata': {'path': JUPYTER_DIR}})
(body, resources) = html_exporter.from_notebook_node(nb)
The functionapp is running the following:
python3.6
nbconvert6.0.3
jupyter-lab0.1.1
I have tried googling the error, the closest thing I have found so far is this which is similar but unanswered and not completely the same. Thought I'd post here to see if anyone knows how to resolve or for me to update if I manage to resolve the issue.
I am quite confused as lab
is not a keyword I am familiar with (outside of maybe jupyterlab
) and isn't being used within the code.
As for the paths mentioned:
home/.local/share/jupyter/
exists and containsnbconvert/templates/html
usr/local/share/jupyter
&usr/share/jupyter
don't exist
Thanks in advance for any help!