web-dev-qa-db-fra.com

Le bloc-notes Jupyter ne peut pas commencer par python 3.8 dans Windows 10

Voici l'erreur détaillée lors du lancement du cahier jupyter avec python version 3.8

  File "c:\users\kokat\appdata\local\programs\python\python38\lib\runpy.py", line 192, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "c:\users\kokat\appdata\local\programs\python\python38\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\Users\kokat\AppData\Local\Programs\Python\Python38\Scripts\jupyter-notebook.EXE\__main__.py", line 9, in <module>
  File "c:\users\kokat\appdata\local\programs\python\python38\lib\site-packages\jupyter_core\application.py", line 266, in launch_instance
    return super(JupyterApp, cls).launch_instance(argv=argv, **kwargs)
  File "c:\users\kokat\appdata\local\programs\python\python38\lib\site-packages\traitlets\config\application.py", line 657, in launch_instance
    app.initialize(argv)
  File "<c:\users\kokat\appdata\local\programs\python\python38\lib\site-packages\decorator.py:decorator-gen-7>", line 2, in initialize
  File "c:\users\kokat\appdata\local\programs\python\python38\lib\site-packages\traitlets\config\application.py", line 87, in catch_config_error
    return method(app, *args, **kwargs)
  File "c:\users\kokat\appdata\local\programs\python\python38\lib\site-packages\notebook\notebookapp.py", line 1628, in initialize
    self.init_webapp()
  File "c:\users\kokat\appdata\local\programs\python\python38\lib\site-packages\notebook\notebookapp.py", line 1407, in init_webapp
    self.http_server.listen(port, self.ip)
  File "c:\users\kokat\appdata\local\programs\python\python38\lib\site-packages\tornado\tcpserver.py", line 144, in listen
    self.add_sockets(sockets)
  File "c:\users\kokat\appdata\local\programs\python\python38\lib\site-packages\tornado\tcpserver.py", line 157, in add_sockets
    self._handlers[sock.fileno()] = add_accept_handler(
  File "c:\users\kokat\appdata\local\programs\python\python38\lib\site-packages\tornado\netutil.py", line 268, in add_accept_handler
    io_loop.add_handler(sock, accept_handler, IOLoop.READ)
  File "c:\users\kokat\appdata\local\programs\python\python38\lib\site-packages\tornado\platform\asyncio.py", line 79, in add_handler
    self.asyncio_loop.add_reader(
  File "c:\users\kokat\appdata\local\programs\python\python38\lib\asyncio\events.py", line 498, in add_reader
    raise NotImplementedError
NotImplementedError

Toute aide serait appréciée.

8
nikhil kokate

Suite à l'un des commentaires dans ce fil , j'ai résolu le problème en:

  1. Recherchez et ouvrez le fichier asyncio.py. Dans mon cas, c'est dans C:\Users [USERNAME]\AppData\Local\Programs\Python\Python38-32\Lib\site-packages\tornado\platform \
  2. Après la ligneimport asyncio ajoutez ce qui suit:
from sys import platform 
if platform == "win32":               
    asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy()) # python-3.8.0a4

Cela forcera l'utilisation de SelectorEventLoop sous Windows.

9
NeverNervous

Le bloc-notes Jupyter fonctionne comme un serveur Web tornado . Votre navigateur se connecte à ce serveur de tornade via une socket.

Les E/S du socket sont gérées par la tornade asyncio , qui repose sur le add_reader implémentation du module natif asyncio de python runtime. Comme indiqué dans la documentation de asyncio, cette méthode n'est prise en charge qu'avec Windows - SelectorEventLoop alors assurez-vous que vous utilisez ce type de boucle d'événement dans votre installation python. Pour savoir quelle implémentation de boucle d'événement est utilisée, vous pouvez exécuter les commandes suivantes dans = python Shell:

import asyncio
print(asyncio.get_event_loop().__class__)
# Output: <class 'asyncio.windows_events._WindowsSelectorEventLoop'>

Il y a un discussion en cours pour permettre à l'utilisateur de modifier le EventLoopPolicy d'asyncio dans le fichier de configuration de jupyter.

5
gdlmx