Ipython: ImportError:无法导入名称“generator_to_async_generator”

创建于 2018-08-25  ·  11评论  ·  资料来源: ipython/ipython

当我在 Ubuntu18.04 上运行 Ipython 时,我得到了这个 ImportError。

最有用的评论

正如你所建议的:

pip uninstall -y ipython prompt_toolkit
pip install ipython prompt_toolkit

在 python-3.7 上为我修复了它。

谢谢你。

所有11条评论

你能过去完整的错误吗?

这看起来像 prompt_toolkit 中出现的一个函数,因此您可能有一个不兼容的 prompt_tokit 版本。 升级或降级到匹配的版本。

暂时关闭,但如果需要重新打开,请随时发表评论。

@瓦

Traceback (most recent call last):
  File "/home/qleegb/.local/lib/python3.6/site-packages/spyder/app/mainwindow.py", line 3181, in main
    mainwindow = run_spyder(app, options, args)
  File "/home/qleegb/.local/lib/python3.6/site-packages/spyder/app/mainwindow.py", line 3057, in run_spyder
    main.setup()
  File "/home/qleegb/.local/lib/python3.6/site-packages/spyder/app/mainwindow.py", line 896, in setup
    from spyder.plugins.ipythonconsole import IPythonConsole
  File "/home/qleegb/.local/lib/python3.6/site-packages/spyder/plugins/ipythonconsole.py", line 59, in <module>
    from spyder.widgets.ipythonconsole import ClientWidget
  File "/home/qleegb/.local/lib/python3.6/site-packages/spyder/widgets/ipythonconsole/__init__.py", line 12, in <module>
    from .debugging import DebuggingWidget
  File "/home/qleegb/.local/lib/python3.6/site-packages/spyder/widgets/ipythonconsole/debugging.py", line 17, in <module>
    from qtconsole.rich_jupyter_widget import RichJupyterWidget
  File "/home/qleegb/.local/lib/python3.6/site-packages/qtconsole/rich_jupyter_widget.py", line 14, in <module>
    from .jupyter_widget import JupyterWidget
  File "/home/qleegb/.local/lib/python3.6/site-packages/qtconsole/jupyter_widget.py", line 19, in <module>
    from IPython.lib.lexers import IPythonLexer, IPython3Lexer
  File "/home/qleegb/.local/lib/python3.6/site-packages/IPython/__init__.py", line 55, in <module>
    from .terminal.embed import embed
  File "/home/qleegb/.local/lib/python3.6/site-packages/IPython/terminal/embed.py", line 16, in <module>
    from IPython.terminal.interactiveshell import TerminalInteractiveShell
  File "/home/qleegb/.local/lib/python3.6/site-packages/IPython/terminal/interactiveshell.py", line 18, in <module>
    from prompt_toolkit.document import Document
  File "/home/qleegb/.local/lib/python3.6/site-packages/prompt_toolkit/__init__.py", line 16, in <module>
    from .interface import CommandLineInterface
  File "/home/qleegb/.local/lib/python3.6/site-packages/prompt_toolkit/interface.py", line 19, in <module>
    from .application import Application, AbortAction
  File "/home/qleegb/.local/lib/python3.6/site-packages/prompt_toolkit/application/__init__.py", line 2, in <module>
    from .application import Application
  File "/home/qleegb/.local/lib/python3.6/site-packages/prompt_toolkit/application/application.py", line 3, in <module>
    from prompt_toolkit.buffer import Buffer
  File "/home/qleegb/.local/lib/python3.6/site-packages/prompt_toolkit/buffer.py", line 9, in <module>
    from .completion import Completer, Completion, CompleteEvent
  File "/home/qleegb/.local/lib/python3.6/site-packages/prompt_toolkit/completion/__init__.py", line 2, in <module>
    from .base import Completion, Completer, ThreadedCompleter, DummyCompleter, DynamicCompleter, CompleteEvent, merge_completers, get_common_complete_suffix
  File "/home/qleegb/.local/lib/python3.6/site-packages/prompt_toolkit/completion/base.py", line 4, in <module>
    from prompt_toolkit.eventloop import generator_to_async_generator, AsyncGeneratorItem
ImportError: cannot import name 'generator_to_async_generator'

成功安装 backcall-0.1.0 decorator-4.3.0 ipython-6.5.0 ipython-genutils-0.2.0 jedi-0.12.1 parso-0.3.1 pexpect-4.6.0 pickleshare-0.7.4 prompt-toolkit-2.0。 4 ptyprocess-0.6.0 pygments-2.2.0 setuptools-40.2.0 simplegeneric-0.8.1 Six-1.11.0 traitlets-4.3.2 wcwidth-0.1.7

这看起来像 prompt_toolkit 已被错误安装。 将其删除并重新安装。
你是怎么安装的? 点? Sudo(如果您使用 sudo 这可能就是原因,请不要将 sudo 与 pip 一起使用)

做什么

python -c 'import prompt_toolkit.eventloop; print(prompt_toolkit.eventloop.__file__)'

说?

/home/qleegb/.local/lib/python3.6/site-packages/prompt_toolkit/eventloop/__init__.py

$ ipython3
回溯(最近一次通话最后):
文件“/home/qleegb/.local/bin/ipython3”,第 7 行,在
从 IPython 导入 start_ipython
文件“/home/qleegb/.local/lib/python3.6/site-packages/IPython/__init__.py”,第 55 行,在
从 .terminal.embed 导入嵌入
文件“/home/qleegb/.local/lib/python3.6/site-packages/IPython/terminal/embed.py”,第 16 行,在
从 IPython.terminal.interactiveshell 导入 TerminalInteractiveShell
文件“/home/qleegb/.local/lib/python3.6/site-packages/IPython/terminal/interactiveshell.py”,第 22 行,在
从 prompt_toolkit.shortcuts 导入 create_prompt_application、create_eventloop、create_prompt_layout、create_output
ImportError:无法导入名称“create_prompt_application”

这太奇怪了。

尝试卸载 ipython & prompt 工具包。 可能做几个pip uninstall以确保您没有多次安装。

如果这不能解决它,我会尝试类似https://github.com/takluyver/damnpth 的东西,因为看起来你的系统确实同时在寻找 2 个版本的 Prompt_toolkit ......

正如你所建议的:

pip uninstall -y ipython prompt_toolkit
pip install ipython prompt_toolkit

在 python-3.7 上为我修复了它。

谢谢你。

@Carreau谢谢你的建议:
重新安装 ipython & prompt 工具包

谢谢,那行得通。 以防万一其他人处于与我相同的情况:我必须从陷入困境的 conda 环境中进行 pip 卸载/安装,即使从基本环境启动 jupyter 也是如此。

在我使用 python3.7 的情况下,我卸载了@stas00所示的ipythonprompt_toolkit并刚刚安装了ipython以便它安装兼容的prompt_toolkit本身

pip uninstall -y ipython prompt_toolkit
pip install ipython
此页面是否有帮助?
0 / 5 - 0 等级