If you try to install Jupyter notebook under Windows and Python 3.8, it will install without any warning, as if everything were OK.
Until you try to run the Jupyter notebook and get something like this:
C:\Users\Administrator>jupyter notebook
[I 18:51:07.103 NotebookApp] Writing notebook server cookie secret to C:\Users\Administrator\AppData\Roaming\jupyter\runtime\notebook_cookie_secret
Traceback (most recent call last):
..."c:\users\administrator\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\administrator\appdata\local\programs\python\python38\lib\asyncio\events.py", line 501, in add_reader
raise NotImplementedError
NotImplementedError
At the time of this post (December 2019), Jupyter Notebook will not work on Python 3.8 under Windows. By looking at the error, seems that there is an issue with the Tornado package (that is a dependency of Jupyter Notebook) and Python 3.8.
After some lookup, I can confirm that this is the problem.
Tornado developers will not implement a fix for this (although it may change in the future) but if you need to run Jupyter Notebook under Windows, and don’t want to downgrade your Python to 3.7, you must fix it yourself.
In order to fix this bug, you must edit the “tornado/platform/asyncio.py” file. The location of this file may be different on your Windows installation.
A typical place where this file reside may be:
c:\users\administrator\appdata\local\programs\python\python38\lib\site-packages\tornado\platform\asyncio.py
(change “administrator” for your actual user name).
Once in this file, you may add these lines after all the imports:
import sys
if sys.platform == 'win32':
asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
Once this file is updated, you will be able to run Jupyter notebook.