2

I am using Python 3.8 and this is the printout of jupyter --version:

jupyter core     : 4.6.3
jupyter-notebook : 6.0.3
qtconsole        : not installed
ipython          : 7.13.0
ipykernel        : 5.1.4
jupyter client   : 6.0.0
jupyter lab      : 2.0.0
nbconvert        : 5.6.1
ipywidgets       : 7.5.1
nbformat         : 5.0.4
traitlets        : 4.3.3

I have literally done nothing but the following (straight from the docs):

pip install voila
git clone https://github.com/QuantStack/voila
cd voila
voila notebooks/bqplot.ipynb

Which prints this:

Traceback (most recent call last):
  File "c:\program files\python38\lib\runpy.py", line 192, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "c:\program files\python38\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\Program Files\Python38\Scripts\voila.exe\__main__.py", line 7, in <module>
  File "c:\program files\python38\lib\site-packages\traitlets\config\application.py", line 664, in launch_instance
    app.start()
  File "c:\program files\python38\lib\site-packages\voila\app.py", line 509, in start
    self.listen()
  File "c:\program files\python38\lib\site-packages\voila\app.py", line 529, in listen
    self.app.listen(port)
  File "c:\program files\python38\lib\site-packages\tornado\web.py", line 2116, in listen
    server.listen(port, address)
  File "c:\program files\python38\lib\site-packages\tornado\tcpserver.py", line 152, in listen
    self.add_sockets(sockets)
  File "c:\program files\python38\lib\site-packages\tornado\tcpserver.py", line 165, in add_sockets
    self._handlers[sock.fileno()] = add_accept_handler(
  File "c:\program files\python38\lib\site-packages\tornado\netutil.py", line 279, in add_accept_handler
    io_loop.add_handler(sock, accept_handler, IOLoop.READ)
  File "c:\program files\python38\lib\site-packages\tornado\platform\asyncio.py", line 100, in add_handler
    self.asyncio_loop.add_reader(fd, self._handle_events, fd, IOLoop.READ)
  File "c:\program files\python38\lib\asyncio\events.py", line 501, in add_reader
    raise NotImplementedError
NotImplementedError

I am a total beginner to Jupyter Notebooks/Lab. How can I fix this?

rocksNwaves
  • 5,331
  • 4
  • 38
  • 77

3 Answers3

6

Add this line in asyncio.py after import asyncio:

asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy()) 

https://github.com/mkdocs/mkdocs/commit/2172c9f999b17201102732a53c08e3de0dd48c74

David Buck
  • 3,752
  • 35
  • 31
  • 35
PerteTotale
  • 104
  • 1
  • 5
1

It worked for me now 4 times. Maybe bcs I use only pip, and some wheels. And on win10 this may get you into dep. trouble esp geo-wise. But I still persist and manage. I think mostly windows users will get this error, as "not implemented"... and I think the win10 line is still a bit under the radar in this context. But it should not be so hard to combine win10 and pip.
That's why I gave this solution.

PerteTotale
  • 104
  • 1
  • 5
0

Although @PerteTotale's answer rightly addresses the issue, it's not advisable to modify a library's internals. One can instead write a separate launcher for voila while setting the appropriate policy such as:

import re
import sys

from voila.app import main

import asyncio


if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
    if sys.platform == 'win32':
        asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy()) 
    sys.exit(main())
Pushkar Nimkar
  • 394
  • 3
  • 11