'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
Solution 1:[1]
Solution is here.
pip install --upgrade nbconvert
For those using anaconda then.
conda upgrade nbconvert
Solution 2:[2]
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.
Solution 3:[3]
@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.
Solution 4:[4]
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.
Solution 5:[5]
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
Solution 6:[6]
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.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | walugembe peter |
Solution 2 | Khurram Majeed |
Solution 3 | Josh |
Solution 4 | |
Solution 5 | heke |
Solution 6 | Phantom |