[IPython-dev] No information about exceptions available from nbconvert output?

Chris Ball ceball at gmail.com
Wed Dec 16 08:10:35 EST 2015


Hi

If a notebook cell causes an exception, there doesn't seem to be any way
to see the traceback in the output of nbconvert. For instance, with the
command ``jupyter nbconvert --execute --to html hello.ipynb`` I get the
following output for various combinations of nbconvert version and
options, but the output never includes the actual traceback...

4.0.0:
```
$ jupyter nbconvert --execute --to html hello.ipynb
[...]
[NbConvertApp] ERROR | failed to run cell: CellExecutionError()
[NbConvertApp] ERROR | raise NotImplementedError('hello')
[NbConvertApp] ERROR | Error while converting 'hello.ipynb'
Traceback (most recent call last):
  File
  "/x/y/anaconda230/lib/python2.7/site-packages/nbconvert/nbconvertapp.py",
  line 332, in export_single_notebook
    output, resources = self.exporter.from_filename(notebook_filename,
    resources=resources)
  File
  "/x/y/anaconda230/lib/python2.7/site-packages/nbconvert/exporters/exporter.py",
  line 166, in from_filename
    return self.from_notebook_node(nbformat.read(f, as_version=4),
    resources=resources, **kw)
  File
  "/x/y/anaconda230/lib/python2.7/site-packages/nbconvert/exporters/html.py",
  line 65, in from_notebook_node
    return super(HTMLExporter, self).from_notebook_node(nb, resources,
    **kw)
  File
  "/x/y/anaconda230/lib/python2.7/site-packages/nbconvert/exporters/templateexporter.py",
  line 198, in from_notebook_node
    nb_copy, resources = super(TemplateExporter,
    self).from_notebook_node(nb, resources, **kw)
  File
  "/x/y/anaconda230/lib/python2.7/site-packages/nbconvert/exporters/exporter.py",
  line 131, in from_notebook_node
    nb_copy, resources = self._preprocess(nb_copy, resources)
  File
  "/x/y/anaconda230/lib/python2.7/site-packages/nbconvert/exporters/exporter.py",
  line 303, in _preprocess
    nbc, resc = preprocessor(nbc, resc)
  File
  "/x/y/anaconda230/lib/python2.7/site-packages/nbconvert/preprocessors/base.py",
  line 47, in __call__
    return self.preprocess(nb,resources)
  File
  "/x/y/anaconda230/lib/python2.7/site-packages/nbconvert/preprocessors/execute.py",
  line 83, in preprocess
    nb, resources = super(ExecutePreprocessor, self).preprocess(nb,
    resources)
  File
  "/x/y/anaconda230/lib/python2.7/site-packages/nbconvert/preprocessors/base.py",
  line 70, in preprocess
    nb.cells[index], resources = self.preprocess_cell(cell, resources,
    index)
  File
  "/x/y/anaconda230/lib/python2.7/site-packages/nbconvert/preprocessors/execute.py",
  line 97, in preprocess_cell
    outputs = self.run_cell(cell)
  File
  "/x/y/anaconda230/lib/python2.7/site-packages/nbconvert/preprocessors/execute.py",
  line 129, in run_cell
    raise CellExecutionError(msg['content']['traceback'])
CellExecutionError
```

4.0.0 with ``--Application.log_level=DEBUG``:
```
[...]
[NbConvertApp] Executing cell:
raise NotImplementedError('hello')
[NbConvertApp] ERROR | failed to run cell: CellExecutionError()
[NbConvertApp] ERROR | raise NotImplementedError('hello')
[NbConvertApp] ERROR | Error while converting 'hello.ipynb'
Traceback (most recent call last):
  File
  "/x/y/anaconda230/lib/python2.7/site-packages/nbconvert/nbconvertapp.py",
  line 332, in export_single_notebook
    output, resources = self.exporter.from_filename(notebook_filename,
    resources=resources)
  File
  "/x/y/anaconda230/lib/python2.7/site-packages/nbconvert/exporters/exporter.py",
  line 166, in from_filename
    return self.from_notebook_node(nbformat.read(f, as_version=4),
    resources=resources, **kw)
  File
  "/x/y/anaconda230/lib/python2.7/site-packages/nbconvert/exporters/html.py",
  line 65, in from_notebook_node
    return super(HTMLExporter, self).from_notebook_node(nb, resources,
    **kw)
  File
  "/x/y/anaconda230/lib/python2.7/site-packages/nbconvert/exporters/templateexporter.py",
  line 198, in from_notebook_node
    nb_copy, resources = super(TemplateExporter,
    self).from_notebook_node(nb, resources, **kw)
  File
  "/x/y/anaconda230/lib/python2.7/site-packages/nbconvert/exporters/exporter.py",
  line 131, in from_notebook_node
    nb_copy, resources = self._preprocess(nb_copy, resources)
  File
  "/x/y/anaconda230/lib/python2.7/site-packages/nbconvert/exporters/exporter.py",
  line 303, in _preprocess
    nbc, resc = preprocessor(nbc, resc)
  File
  "/x/y/anaconda230/lib/python2.7/site-packages/nbconvert/preprocessors/base.py",
  line 47, in __call__
    return self.preprocess(nb,resources)
  File
  "/x/y/anaconda230/lib/python2.7/site-packages/nbconvert/preprocessors/execute.py",
  line 83, in preprocess
    nb, resources = super(ExecutePreprocessor, self).preprocess(nb,
    resources)
  File
  "/x/y/anaconda230/lib/python2.7/site-packages/nbconvert/preprocessors/base.py",
  line 70, in preprocess
    nb.cells[index], resources = self.preprocess_cell(cell, resources,
    index)
  File
  "/x/y/anaconda230/lib/python2.7/site-packages/nbconvert/preprocessors/execute.py",
  line 97, in preprocess_cell
    outputs = self.run_cell(cell)
  File
  "/x/y/anaconda230/lib/python2.7/site-packages/nbconvert/preprocessors/execute.py",
  line 129, in run_cell
    raise CellExecutionError(msg['content']['traceback'])
CellExecutionError
```

Current master (71e80ef6f4930a06087b8bd32f0e209af1393e59):
```
[...]
[NbConvertApp] ERROR | Error while converting 'hello.ipynb'
Traceback (most recent call last):
  File
  "/x/y/anaconda230/lib/python2.7/site-packages/nbconvert/nbconvertapp.py",
  line 335, in export_single_notebook
    output, resources = self.exporter.from_filename(notebook_filename,
    resources=resources)
  File
  "/x/y/anaconda230/lib/python2.7/site-packages/nbconvert/exporters/exporter.py",
  line 165, in from_filename
    return self.from_notebook_node(nbformat.read(f, as_version=4),
    resources=resources, **kw)
  File
  "/x/y/anaconda230/lib/python2.7/site-packages/nbconvert/exporters/html.py",
  line 65, in from_notebook_node
    return super(HTMLExporter, self).from_notebook_node(nb, resources,
    **kw)
  File
  "/x/y/anaconda230/lib/python2.7/site-packages/nbconvert/exporters/templateexporter.py",
  line 196, in from_notebook_node
    nb_copy, resources = super(TemplateExporter,
    self).from_notebook_node(nb, resources, **kw)
  File
  "/x/y/anaconda230/lib/python2.7/site-packages/nbconvert/exporters/exporter.py",
  line 130, in from_notebook_node
    nb_copy, resources = self._preprocess(nb_copy, resources)
  File
  "/x/y/anaconda230/lib/python2.7/site-packages/nbconvert/exporters/exporter.py",
  line 302, in _preprocess
    nbc, resc = preprocessor(nbc, resc)
  File
  "/x/y/anaconda230/lib/python2.7/site-packages/nbconvert/preprocessors/base.py",
  line 47, in __call__
    return self.preprocess(nb,resources)
  File
  "/x/y/anaconda230/lib/python2.7/site-packages/nbconvert/preprocessors/execute.py",
  line 83, in preprocess
    nb, resources = super(ExecutePreprocessor, self).preprocess(nb,
    resources)
  File
  "/x/y/anaconda230/lib/python2.7/site-packages/nbconvert/preprocessors/base.py",
  line 70, in preprocess
    nb.cells[index], resources = self.preprocess_cell(cell, resources,
    index)
  File
  "/x/y/anaconda230/lib/python2.7/site-packages/nbconvert/preprocessors/execute.py",
  line 112, in preprocess_cell
    raise CellExecutionError(msg)
CellExecutionError
```

Current master with with ``--Application.log_level=DEBUG``:
```
[...]
[NbConvertApp] Executing cell:
raise NotImplementedError('hello')
[NbConvertApp] output: status
[NbConvertApp] output: execute_input
[NbConvertApp] output: error
[NbConvertApp] output: status
[NbConvertApp] ERROR | Error while converting 'hello.ipynb'
Traceback (most recent call last):
  File
  "/x/y/anaconda230/lib/python2.7/site-packages/nbconvert/nbconvertapp.py",
  line 335, in export_single_notebook
    output, resources = self.exporter.from_filename(notebook_filename,
    resources=resources)
  File
  "/x/y/anaconda230/lib/python2.7/site-packages/nbconvert/exporters/exporter.py",
  line 165, in from_filename
    return self.from_notebook_node(nbformat.read(f, as_version=4),
    resources=resources, **kw)
  File
  "/x/y/anaconda230/lib/python2.7/site-packages/nbconvert/exporters/html.py",
  line 65, in from_notebook_node
    return super(HTMLExporter, self).from_notebook_node(nb, resources,
    **kw)
  File
  "/x/y/anaconda230/lib/python2.7/site-packages/nbconvert/exporters/templateexporter.py",
  line 196, in from_notebook_node
    nb_copy, resources = super(TemplateExporter,
    self).from_notebook_node(nb, resources, **kw)
  File
  "/x/y/anaconda230/lib/python2.7/site-packages/nbconvert/exporters/exporter.py",
  line 130, in from_notebook_node
    nb_copy, resources = self._preprocess(nb_copy, resources)
  File
  "/x/y/anaconda230/lib/python2.7/site-packages/nbconvert/exporters/exporter.py",
  line 302, in _preprocess
    nbc, resc = preprocessor(nbc, resc)
  File
  "/x/y/anaconda230/lib/python2.7/site-packages/nbconvert/preprocessors/base.py",
  line 47, in __call__
    return self.preprocess(nb,resources)
  File
  "/x/y/anaconda230/lib/python2.7/site-packages/nbconvert/preprocessors/execute.py",
  line 83, in preprocess
    nb, resources = super(ExecutePreprocessor, self).preprocess(nb,
    resources)
  File
  "/x/y/anaconda230/lib/python2.7/site-packages/nbconvert/preprocessors/base.py",
  line 70, in preprocess
    nb.cells[index], resources = self.preprocess_cell(cell, resources,
    index)
  File
  "/x/y/anaconda230/lib/python2.7/site-packages/nbconvert/preprocessors/execute.py",
  line 112, in preprocess_cell
    raise CellExecutionError(msg)
CellExecutionError
```

Am I doing something wrong, or does what I'm looking for make no sense?

I could run nbconvert with ``--allow-errors`` and then inspect the html,
but that seems like a difficult way to obtain the information (e.g. on a
build server where nbconvert is being used to test a notebook).


Thanks
Chris



More information about the IPython-dev mailing list