David Lindo Atichati
David Lindo Atichati

Reputation: 311

How can I fix "500 : Internal Server Error" on jupyter notebook due to 'tornado.web' not having attribute 'asynchronous'?

Jupiter notebook is not opening notebooks and shows a "500 : Internal Server Error" instead. What I did was activate an environment I need and launching Jupyter. Please find below what I did and the error message on the terminal:

$ conda activate py3_parcels

$ jupyter notebook [I 18:20:39.663 NotebookApp] Loading IPython parallel extension [I 18:20:39.665 NotebookApp] Serving notebooks from local directory: /Users/davidlindo-atichati/run/GOM_MED [I 18:20:39.665 NotebookApp] The Jupyter Notebook is running at: [I 18:20:39.665 NotebookApp] http://localhost:8888/?token=36466fc830862b794856668cd6ded86fe0a664247233764a [I 18:20:39.665 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation). [C 18:20:39.677 NotebookApp] 

    Copy/paste this URL into your browser when you connect for the first time,
    to login with a token:
        http://localhost:8888/?token=36466fc830862b794856668cd6ded86fe0a664247233764a [I 18:20:40.211 NotebookApp] Accepting one-time-token-authenticated connection from ::1

The notebook opens on my Safari browser. But when I try to open an existing notebook or when I create a new notebook I receive a "500 : Internal Server Error" in the browser and the following message on the terminal:

[E 18:22:16.169 NotebookApp] Uncaught exception GET /notebooks/backtracking-sample-1.ipynb (::1)
    HTTPServerRequest(protocol='http', host='localhost:8888', method='GET', uri='/notebooks/backtracking-sample-1.ipynb', version='HTTP/1.1', remote_ip='::1')
    Traceback (most recent call last):
      File "/Users/davidlindo-atichati/miniconda3/envs/py3_parcels/lib/python3.7/site-packages/tornado/web.py", line 1697, in _execute
        result = method(*self.path_args, **self.path_kwargs)
      File "/Users/davidlindo-atichati/miniconda3/envs/py3_parcels/lib/python3.7/site-packages/tornado/web.py", line 3174, in wrapper
        return method(self, *args, **kwargs)
      File "/Users/davidlindo-atichati/miniconda3/envs/py3_parcels/lib/python3.7/site-packages/notebook/notebook/handlers.py", line 59, in get
        get_custom_frontend_exporters=get_custom_frontend_exporters
      File "/Users/davidlindo-atichati/miniconda3/envs/py3_parcels/lib/python3.7/site-packages/notebook/base/handlers.py", line 467, in render_template
        return template.render(**ns)
      File "/Users/davidlindo-atichati/miniconda3/envs/py3_parcels/lib/python3.7/site-packages/jinja2/asyncsupport.py", line 76, in render
        return original_render(self, *args, **kwargs)
      File "/Users/davidlindo-atichati/miniconda3/envs/py3_parcels/lib/python3.7/site-packages/jinja2/environment.py", line 1008, in render
        return self.environment.handle_exception(exc_info, True)
      File "/Users/davidlindo-atichati/miniconda3/envs/py3_parcels/lib/python3.7/site-packages/jinja2/environment.py", line 780, in handle_exception
        reraise(exc_type, exc_value, tb)
      File "/Users/davidlindo-atichati/miniconda3/envs/py3_parcels/lib/python3.7/site-packages/jinja2/_compat.py", line 37, in reraise
        raise value.with_traceback(tb)
      File "/Users/davidlindo-atichati/miniconda3/envs/py3_parcels/lib/python3.7/site-packages/notebook/templates/notebook.html", line 1, in top-level template code
        {% extends "page.html" %}
      File "/Users/davidlindo-atichati/miniconda3/envs/py3_parcels/lib/python3.7/site-packages/notebook/templates/page.html", line 154, in top-level template code
        {% block header %}
      File "/Users/davidlindo-atichati/miniconda3/envs/py3_parcels/lib/python3.7/site-packages/notebook/templates/notebook.html", line 120, in block "header"
        {% for exporter in get_custom_frontend_exporters() %}
      File "/Users/davidlindo-atichati/miniconda3/envs/py3_parcels/lib/python3.7/site-packages/notebook/notebook/handlers.py", line 19, in get_custom_frontend_exporters
        from nbconvert.exporters.base import get_export_names, get_exporter
      File "/Users/davidlindo-atichati/miniconda3/envs/py3_parcels/lib/python3.7/site-packages/nbconvert/__init__.py", line 7, in <module>
        from . import postprocessors
      File "/Users/davidlindo-atichati/miniconda3/envs/py3_parcels/lib/python3.7/site-packages/nbconvert/postprocessors/__init__.py", line 5, in <module>
        from .serve import ServePostProcessor
      File "/Users/davidlindo-atichati/miniconda3/envs/py3_parcels/lib/python3.7/site-packages/nbconvert/postprocessors/serve.py", line 19, in <module>
        class ProxyHandler(web.RequestHandler):
      File "/Users/davidlindo-atichati/miniconda3/envs/py3_parcels/lib/python3.7/site-packages/nbconvert/postprocessors/serve.py", line 21, in ProxyHandler
        @web.asynchronous
    AttributeError: module 'tornado.web' has no attribute 'asynchronous' [E 18:22:16.178 NotebookApp] {
      "Host": "localhost:8888",
      "Cookie": "username-localhost-8888=\"2|1:0|10:1551828040|23:username-localhost-8888|44:OGQ4ZTgzZDRjZjFiNDMzZDk0ZTI2NmJkMDc3OTEzMDk=|e4504cac3111242d53ab46ce3b8fa72750876a90bef7bc980a2ebb3c6f77caec\"; username-localhost-8889=\"2|1:0|10:1551821266|23:username-localhost-8889|44:ZjgyOTBhNTE3Zjg0NDJlOGIyNTA5NDRiNTBjMzQ0YTk=|43b122243108c4f7dbf37e636660b8d0656f5173d2b363a6bb496681de6d4e5f\";
_xsrf=2|0a22b984|8687c792155e13f5d476952db2d9f2f7|1551360338",
      "Connection": "keep-alive",
      "Upgrade-Insecure-Requests": "1",
      "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
      "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0.3 Safari/605.1.15",
      "Referer": "http://localhost:8888/tree",
      "Accept-Language": "en-us",
      "Accept-Encoding": "gzip, deflate"
    } [E 18:22:16.178 NotebookApp] 500 GET /notebooks/backtracking-sample-1.ipynb (::1) 121.50ms referer=http://localhost:8888/tree

Upvotes: 31

Views: 61409

Answers (6)

heke
heke

Reputation: 1

After installing Jupyter with command:

pip install jupyter

got the 500 error when attempting to create new notebook.

Fixed it by reinstalling Jupyter with command:

pip3 install jupyter

Upvotes: 0

Foivos
Foivos

Reputation: 29

For me, the solution was to follow the suggestion of this link and apply a small edit to an nbconvert file.

In detail, you need to modify the function _get_conf of the file nbconvert/exporters/templateexporter.py to look like the following:

    def _get_conf(self):
        conf = {}  # the configuration once all conf files are merged
        for path in map(Path, self.template_paths):
            try:
                conf_path = path / 'conf.json'
                if conf_path.exists():
                    with conf_path.open() as f:
                        conf = recursive_update(conf, json.load(f))
            except:
                ## not important
                OK=1

        return conf

This is a hack, hopefully a future update to nbconvert will provide a permanent fix.

Upvotes: 2

Khurram Majeed
Khurram Majeed

Reputation: 2411

I re-installed nbcovert using command.

conda install nbconvert=5.4.1

The above fixed the “500 : Internal Server Error”. However, when I launched jupyter notebook it would refuse to connect to python kernel so I had to downgrade tornado from v6.0.1 to v5.1.1 using the command

conda install tornado=5.1.1 

After this I have no issues using jupyter notebooks.

If you don't have conda then you can use pip instead.

Ref: Tornado 6 issue discussed here and here

Upvotes: 9

srodriguex
srodriguex

Reputation: 3090

Solution is here.

pip install --upgrade nbconvert

For those using anaconda then.

 conda upgrade nbconvert 

Upvotes: 47

Josh
Josh

Reputation: 33

@tevemadar probably has the correct answer in your case. Tornado 6+ is causing a conflict with jupyter. If you edit your environment.yml to specify

dependencies:
-tornado<6

it fixed that issue for me.

Upvotes: 3

Phantom
Phantom

Reputation: 71

This won't be a perfect answer. But I'll let you know anyway. It is happening because of some package version conflict as I figured out. If you uninstall and reinstall Anaconda, it will work. It worked for me.

Upvotes: -1

Related Questions