带有 Python 3.8 的 Jupyter Notebook - NotImplementedError
Jupyter Notebook with Python 3.8 - NotImplementedError
最近升级到 Python 3.8,并安装了 jupyter
。但是,当尝试 运行 jupyter notebook
时出现以下错误:
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 on windows 默认切换到 ProactorEventLoop
,所以我怀疑它与此有关。
Jupyter 目前不支持 Python 3.8?有解决办法吗?
编辑
此问题存在于旧版本的 Jupyter Notebook 中,并已在版本 6.0.3(2020-01-21 发布)中修复。要升级到最新版本运行:
pip install notebook --upgrade
通过 GitHub 关注此问题,看来问题与 jupyter 使用的 tornado
服务器有关。
对于那些等不及官方修复的人,我可以通过编辑文件 tornado/platform/asyncio.py
来让它工作,添加:
import sys
if sys.platform == 'win32':
asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
主要导入后。
不过,我希望官方尽快修复此问题。
修改2019年的答案
更改文件的结尾部分
C:\Users\{USER-NAME}\AppData\Local\Programs\Python\Python38\Lib\asyncio\__init__.py
来自
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__
到
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__
对我来说,我不得不重新安装 asyncio
pip install asyncio --upgrade
并升级内核包
pip install ipykernel --upgrade
我通过将 python 版本从 3.9 更改为 3.7 解决了这个问题。 (Windows).
最近升级到 Python 3.8,并安装了 jupyter
。但是,当尝试 运行 jupyter notebook
时出现以下错误:
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 on windows 默认切换到 ProactorEventLoop
,所以我怀疑它与此有关。
Jupyter 目前不支持 Python 3.8?有解决办法吗?
编辑
此问题存在于旧版本的 Jupyter Notebook 中,并已在版本 6.0.3(2020-01-21 发布)中修复。要升级到最新版本运行:
pip install notebook --upgrade
通过 GitHub 关注此问题,看来问题与 jupyter 使用的 tornado
服务器有关。
对于那些等不及官方修复的人,我可以通过编辑文件 tornado/platform/asyncio.py
来让它工作,添加:
import sys
if sys.platform == 'win32':
asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
主要导入后。
不过,我希望官方尽快修复此问题。
修改2019年的答案
更改文件的结尾部分
C:\Users\{USER-NAME}\AppData\Local\Programs\Python\Python38\Lib\asyncio\__init__.py
来自
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__
到
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__
对我来说,我不得不重新安装 asyncio
pip install asyncio --upgrade
并升级内核包
pip install ipykernel --upgrade
我通过将 python 版本从 3.9 更改为 3.7 解决了这个问题。 (Windows).