Python 3.8 ile Jupyter Not Defteri - NotImplementedError


69

Son zamanlarda Python 3.8'e yükseltildi ve yüklendi jupyter. Ancak, jupyter notebookaşağıdaki hatayı almaya çalışırken :

  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

Python 3.8 ProactorEventLoopvarsayılan olarak açık pencerelerde biliyorum , bu yüzden bununla ilgili olduğundan şüpheleniyorum.

Jupyter şu anda Python 3.8'i desteklemiyor mu? Etrafta bir çalışma var mı?


3
Python 3.8 çok taze, bu yüzden 3.7'ye geri dönün ve daha iyi test edilecek ve modüller 3.8 için özel olarak oluşturulacak kadar biraz bekleyin.
furas


3
hala 3.8.1'de kırıldı (bugün yayınlandı).
Rick,

1
Bu artık jupyter notebook'un 6.0.3 sürümünde düzeltildi. Yeni sürüme geçpip install notebook --upgrade
drec4s

Yanıtlar:


178

DÜZENLE

Bu sorun Jupyter Notebook'un eski sürümlerinde bulunmaktadır ve 6.0.3 sürümünde (2020-01-21'de yayımlanmıştır) giderilmiştir. En son sürüme yükseltmek için:

pip install notebook --upgrade

GitHub aracılığıyla bu sorunu takiben, sorun tornadojupyter tarafından kullanılan sunucu ile ilgili gibi görünüyor .

Resmi bir düzeltme bekleyemeyenler için, dosyayı düzenleyerek çalıştırabildim tornado/platform/asyncio.py:

import sys

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

Ana ithalattan sonra.

Ancak yakında bunun için resmi bir düzeltme bekliyorum.


7
Tornado ekibinden bir düzeltme beklemeyin: github.com/tornadoweb/tornado/issues/2608
Andrew

9
asyncio.py arıyorsanız, "C: \ Python3 \ Lib \ site-Packages \ tornado \ platform"
Behnam Heydari

2
Teşekkürler! Bir conda env kullanıyorsanız, yalnızca global olanı değil, env'deki sürümü değiştirdiğinizden emin olun. İkinci olarak, bu değişikliği import asyncioaçıklamadan sonra eklediğinizden emin olun :)
Omri374

1
Bu benim için düzeltildi. Özellikle: 1. Çalıştırırsanız dosya konumunu yığın izlemesinden alabilirsiniz: jupyter -m notebook 2. Sistemimde dosya burada bulunur: C: \ Users_NAME_ \ AppData \ Roaming \ Python \ Python38 \ site-Packages \ tornado \ platform \ asyncio.py
Isaiah

2
Bu benim için işe yaramadı Ocak 2020, Python3.8 ama Mirwise Khan'ın aşağıdaki cevabı işe yaradı
Solucan

32

2019'da cevabı gözden geçirme

Dosyanın son bölümünü değiştirme C:\Users\{USER-NAME}\AppData\Local\Programs\Python\Python38\Lib\asyncio\__init__.py

itibaren

if sys.platform == 'win32':  # pragma: no cover
    from .windows_events import *
    __all__ += windows_events.__all__
else:
    from .unix_events import *  # pragma: no cover
    __all__ += unix_events.__all__

için

import asyncio

if sys.platform == 'win32':
    from .windows_events import *
    asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
    __all__ += windows_events.__all__
else:
    from .unix_events import *  # pragma: no cover
    __all__ += unix_events.__all__

1
Hem soru hem de kabul edilen cevap Ekim 2019'dan geldi ve çözüm benim için çalıştı
Sundeep

2
Kabul edilen cevap benim için işe yaramadı. bunu yaptı. Teşekkürler!
Abhishek Agarwal

5
bu benim için çalışıyor, Ocak 2020, Python Windows
cryanbhu

5
Çok da
çalıştım

2
Ben ediyorum değil gidip Python'ın standart kitaplığı kaynak kodunu değiştirmek.
Martijn Pieters
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.