无法运行Jupyter Notebook - "无法导入名称AsyncGenerator"

5

有没有人对如何解决这个问题有建议?我没有使用Anaconda。我所使用的Jupyter版本是1.0.0。

Traceback (most recent call last):
  File "c:\python36\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "c:\python36\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "c:\python36\lib\site-packages\ipykernel_launcher.py", line 15, in <module>
    from ipykernel import kernelapp as app
  File "c:\python36\lib\site-packages\ipykernel\__init__.py", line 2, in <module>
    from .connect import *
  File "c:\python36\lib\site-packages\ipykernel\connect.py", line 13, in <module>
    from IPython.core.profiledir import ProfileDir
  File "c:\python36\lib\site-packages\IPython\__init__.py", line 56, in <module>
    from .terminal.embed import embed
  File "c:\python36\lib\site-packages\IPython\terminal\embed.py", line 16, in <module>
    from IPython.terminal.interactiveshell import TerminalInteractiveShell
  File "c:\python36\lib\site-packages\IPython\terminal\interactiveshell.py", line 19, in <module>
    from prompt_toolkit.enums import DEFAULT_BUFFER, EditingMode
  File "c:\python36\lib\site-packages\prompt_toolkit\__init__.py", line 16, in <module>
    from .application import Application
  File "c:\python36\lib\site-packages\prompt_toolkit\application\__init__.py", line 1, in <module>
    from .application import Application
  File "c:\python36\lib\site-packages\prompt_toolkit\application\application.py", line 38, in <module>
    from prompt_toolkit.buffer import Buffer
  File "c:\python36\lib\site-packages\prompt_toolkit\buffer.py", line 28, in <module>
    from .application.current import get_app
  File "c:\python36\lib\site-packages\prompt_toolkit\application\current.py", line 8, in <module>
    from prompt_toolkit.eventloop.dummy_contextvars import ContextVar  # type: ignore
  File "c:\python36\lib\site-packages\prompt_toolkit\eventloop\__init__.py", line 1, in <module>
    from .async_generator import generator_to_async_generator
  File "c:\python36\lib\site-packages\prompt_toolkit\eventloop\async_generator.py", line 5, in <module>
    from typing import AsyncGenerator, Callable, Iterable, TypeVar, Union
ImportError: cannot import name 'AsyncGenerator'

非常感谢。

你在使用哪个版本的Python? - pastaleg
我正在使用版本3.6.0。 - we_are_all_in_this_together
4个回答

16

原因是 prompt_toolkit 的版本与 Python 3.6 不匹配。

解决方法是降低版本。

pip install --upgrade prompt-toolkit==2.0.1

5
根据与相同错误文本相关的Github问题:https://github.com/python/typing/issues/530,这是一个在Python 3.6.1中已解决的bug。
由于您正在使用Python 3.6.0,应升级到3.6.1或更高版本以解决此问题。
另一种解决方法是设置:
if TYPE_CHECKING: from typing import AsyncGenerator

抱歉重新提起这个问题,但我应该在哪里设置它? 我遇到了同样的问题,但由于我的项目限制,我无法升级到3.6.1,所以我需要坚持使用这个解决方法。 - Emerson Oliveira

0
我在py3.9上遇到了这个错误,为了解决它,我不得不将解析器更改为兼容的版本。
尝试运行:
pip3 install jupyter --use-feature=2020-resolver

0

我在 CONDA 环境中遇到了这个错误:

  1. 必须像这样卸载软件包:

conda remove -n pyspark_env prompt_toolkit

  1. 按照此处提到的再次安装:

conda install -c https://conda.anaconda.org/conda-forge prompt_toolkit

Python 3.7, prompt_toolkit - 3.0.2,2021年11月


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接