pythonwindowsjupyter-notebooktornado

Jupyter Notebook with Python 3.8 - NotImplementedError


Upgraded recently to Python 3.8, and installed jupyter. However, when trying to run jupyter notebook getting the following error:

  File "c:\users\user\appdata\local\programs\python\python38\lib\site-packages\tornado\platform\asyncio.py", line 99, in add_handler
    self.asyncio_loop.add_reader(fd, self._handle_events, fd, IOLoop.READ)
  File "c:\users\user\appdata\local\programs\python\python38\lib\asyncio\events.py", line 501, in add_reader
    raise NotImplementedError
NotImplementedError

I know Python 3.8 on windows switched to ProactorEventLoop by default, so I suspect it is related to this.

Jupyter does not support Python 3.8 at the moment? Is there a work around?


Solution

  • EDIT

    This issue exists in older versions of Jupyter Notebook and was fixed in version 6.0.3 (released 2020-01-21). To upgrade to the latest version run:

    pip install notebook --upgrade
    

    Following on this issue through GitHub, it seems the problem is related to the tornado server that jupyter uses.

    For those that can't wait for an official fix, I was able to get it working by editing the file tornado/platform/asyncio.py, by adding:

    import sys
    
    if sys.platform == 'win32':
        asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
    

    After the main imports.

    I expect an official fix for this soon, however.