1
votes

Comment réparer "NotImplementedError" en essayant d'exécuter Hydrogen dans Atom

J'essaye d'exécuter Hydrogen sur Atom, mais j'obtiens un message d'erreur qui se termine par "NotImplementedError" dans la librairie asyncio python.

J'ai Python3 installé sur une machine Windows 10, et j'ai le noyau ipython installé avec jupyter.

Je reçois le message d'erreur suivant et je ne sais pas par où commencer pour résoudre le problème.

Traceback (dernier appel le plus récent): Fichier "C: \ Users \ chels \ AppData \ Local \ Programs \ Python \ Python38 \ lib \ runpy.py", ligne 192, dans _run_module_as_main return _run_code (code, main_globals, None , Fichier "C: \ Users \ chels \ AppData \ Local \ Programs \ Python \ Python38 \ lib \ runpy.py", ligne 85, dans _run_code exec (code, run_globals) Fichier "C: \ Users \ chels \ AppData \ Local \ Programmes \ Python \ Python38 \ lib \ site-packages \ ipykernel_launcher.py ", ligne 16, dans le fichier app.launch_new_instance ()" C: \ Users \ chels \ AppData \ Local \ Programs \ Python \ Python38 \ lib \ site- packages \ traitlets \ config \ application.py ", ligne 657, dans Launch_instance app.initialize (argv) File" ", ligne 2, dans initialize File" C: \ Users \ chels \ AppData \ Local \ Programs \ Python \ Python38 \ lib \ site-packages \ traitlets \ config \ application.py ", ligne 87, dans la méthode de retour catch_config_error (app, * args, ** kwargs) Fichier" C: \ Users \ chels \ AppData \ Local \ Programs \ Python \ Python38 \ lib \ site-packages \ ipykernel \ kernelapp.py ", ligne 469, dans le fichier initialize self.init_sockets ()" C: \ Users \ chels \ AppData \ Lo cal \ Programs \ Python \ Python38 \ lib \ site-packages \ ipykernel \ kernelapp.py ", ligne 259, dans le fichier init_sockets self.init_iopub (contexte)" C: \ Users \ chels \ AppData \ Local \ Programs \ Python \ Python38 \ lib \ site-packages \ ipykernel \ kernelapp.py ", ligne 267, dans init_iopub self.iopub_thread = IOPubThread (self.iopub_socket, pipe = True) Fichier" C: \ Users \ chels \ AppData \ Local \ Programs \ Python \ Python38 \ lib \ site-packages \ ipykernel \ iostream.py ", ligne 68, dans init self._setup_pipe_in () File" C: \ Users \ chels \ AppData \ Local \ Programs \ Python \ Python38 \ lib \ site-packages \ ipykernel \ iostream.py ", ligne 141, dans _setup_pipe_in self._pipe_in = ZMQStream (pipe_in, self.io_loop) File" C: \ Users \ chels \ AppData \ Local \ Programs \ Python \ Python38 \ lib \ site-packages \ zmq \ eventloop \ zmqstream.py ", ligne 120, dans init self._init_io_state () Fichier" C: \ Users \ chels \ AppData \ Local \ Programs \ Python \ Python38 \ lib \ site-packages \ zmq \ eventloop \ zmqstream.py ", ligne 541, dans _init_io_state self.io_loop.add_handler (self.socket, self._handle_events, self.io_loop.READ) Fichier" C: \ Users \ chels \ AppData \ Local \ Programs \ Python \ Python38 \ lib \ site-packages \ tornado \ platform \ asyncio.py ", ligne 79, dans add_handler self.asyncio_loop.add_reader (fichier" C: \ Users \ chels \ AppData \ Local \ Programs \ Python \ Python38 \ lib \ asyncio \ events.py ", ligne 498, dans add_reader relance NotImplementedError NotImplementedError


1 commentaires

quiconque tombe sur cette question: consultez cette réponse - au moins cela m'a aidé à corriger mon problème avec l'IDE Spyder - qui semble avoir la même cause.


3 Réponses :


1
votes

L'exception vient du fait que Tornado a invoqué la méthode de boucle d'événement asyncio add_reader qui n'est pas pris en charge sous Windows.

La documentation Tornado indique ce qui suit à propos des plates-formes:

Plates-formes: Tornado doit fonctionner sur n'importe quelle plate-forme de type Unix, bien que pour les meilleures performances et évolutivité uniquement Linux (avec epoll ) et BSD (avec kqueue ) sont recommandés pour le déploiement en production (même si Mac OS X est dérivé de BSD et prend en charge kqueue, ses performances réseau sont généralement médiocres, il n'est donc recommandé que pour une utilisation en développement). Tornado fonctionnera également sous Windows, bien que cette configuration ne soit pas officiellement prise en charge et soit recommandée uniquement pour une utilisation en développement. Sans retravailler l'interface de Tornado IOLoop, il n'est pas possible d'ajouter une implémentation native de Tornado Windows IOLoop ou de tirer parti de la prise en charge IOCP de Windows à partir de frameworks comme AsyncIO ou Twisted.

La dernière phrase signifie que la partie asyncio de Tornado ne fonctionne pas encore sous Windows.


1 commentaires

Ok, savez-vous comment je pourrais résoudre / surmonter cela pour que l'hydrogène fonctionne correctement? Il est définitivement compatible avec Windows.



0
votes

Vous pouvez revenir à Python 3.7 ou modifier Tornado pour travailler sur 3.8.

Recherchez le fichier tornado / platform / asyncio.py et ajoutez le code suivant:

import sys

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


0 commentaires

0
votes

Vous devez l'ajouter dans C: \ Users \ username \ AppData \ Local \ Programs \ Python \ Python38 \ Lib \ site-packages \ tornado \ platform

import asyncio
asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())  # python-3.8.0a4


0 commentaires