Ipython: ImportError: não é possível importar o nome 'generator_to_async_generator'

Criado em 25 ago. 2018  ·  11Comentários  ·  Fonte: ipython/ipython

Quando executo o Ipython no Ubuntu18.04, recebi este ImportError.

Comentários muito úteis

Como você sugeriu:

pip uninstall -y ipython prompt_toolkit
pip install ipython prompt_toolkit

corrigi-lo para mim em python-3.7.

Obrigada.

Todos 11 comentários

Você pode passar o erro completo?

Isso se parece com uma função que aparece no prompt_toolkit, então você provavelmente tem uma versão incompatível do prompt_tookit. Faça upgrade ou downgrade para uma versão correspondente.

Fechando por enquanto, mas sinta-se à vontade para comentar se isso precisar ser reaberto.

@Telha

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 decorador-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 instalado com sucesso. 4 ptyprocess-0.6.0 pigmentos-2.2.0 setuptools-40.2.0 simplegeneric-0.8.1 seis-1.11.0 traitlets-4.3.2 wcwidth-0.1.7

Parece que o prompt_toolkit foi instalado incorretamente. Remova-o e reinstale-o.
Como você instalou? Pip? Sudo (se você usou sudo, pode ser por isso, nunca use sudo com pip)

O que

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

diz ?

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

$ ipython3
Traceback (última chamada mais recente):
Arquivo "/home/qleegb/.local/bin/ipython3", linha 7, em
do IPython import start_ipython
Arquivo "/home/qleegb/.local/lib/python3.6/site-packages/IPython/__init__.py", linha 55, em
de .terminal.embed importação incorporação
Arquivo "/home/qleegb/.local/lib/python3.6/site-packages/IPython/terminal/embed.py", linha 16, em
de IPython.terminal.interactiveshell importar TerminalInteractiveShell
Arquivo "/home/qleegb/.local/lib/python3.6/site-packages/IPython/terminal/interactiveshell.py", linha 22, em
de prompt_toolkit.shortcuts import create_prompt_application, create_eventloop, create_prompt_layout, create_output
ImportError: não é possível importar o nome 'create_prompt_application'

Isso é super estranho.

Tente desinstalar o ipython & prompt toolkit. potencialmente fazer vários pip uninstall para ter certeza de que você não tem várias instalações.

Se isso não resolver, eu tentaria algo como https://github.com/takluyver/damnpth , porque realmente parece que seu sistema está encontrando 2 versões do Prompt_toolkit ao mesmo tempo ...

Como você sugeriu:

pip uninstall -y ipython prompt_toolkit
pip install ipython prompt_toolkit

corrigi-lo para mim em python-3.7.

Obrigada.

@Carreau Obrigado por sua sugestão:
reinstale o kit de ferramentas do ipython & prompt

Obrigado, isso funcionou. Apenas no caso de outras pessoas estarem na mesma situação que eu: tive que desinstalar/instalar pip de dentro do ambiente conda problemático, mesmo ao iniciar o jupyter a partir do env base.

No meu caso com python3.7, eu desinstalei ipython e prompt_toolkit como mostrado por @stas00 e apenas instalei ipython para que ele instale o compatível prompt_toolkit em si

pip uninstall -y ipython prompt_toolkit
pip install ipython
Esta página foi útil?
0 / 5 - 0 avaliações