Ubuntu18.04์์ Ipython์ ์คํํ๋ฉด ์ด ImportError๊ฐ ๋ฐ์ํฉ๋๋ค.
์ ์ฒด ์ค๋ฅ๋ฅผ ์ง๋์น ์ ์์ต๋๊น?
์ด๊ฒ์ prompt_toolkit์ ๋ํ๋๋ ๊ธฐ๋ฅ์ฒ๋ผ ๋ณด์ด๋ฏ๋ก, ํธํ๋์ง ์๋ prompt_tookit ๋ฒ์ ์ด ์์ ์ ์์ต๋๋ค. ์ผ์นํ๋ ๋ฒ์ ์ผ๋ก ์ ๊ทธ๋ ์ด๋ํ๊ฑฐ๋ ๋ค์ด๊ทธ๋ ์ด๋ํฉ๋๋ค.
์ง๊ธ์ ๋ฌธ์ ๋ซ์ง๋ง ๋ค์ ์ด์ด์ผ ํ๋ ๊ฒฝ์ฐ ๋๊ธ์ ๋จ๊ฒจ์ฃผ์ธ์.
@ํ์ผ
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 6-1.11.0 traitlets-4.3.2 wcwidth-0.1.7
์ด๊ฒ์ prompt_toolkit์ด ์๋ชป ์ค์น๋ ๊ฒ์ฒ๋ผ ๋ณด์
๋๋ค. ์ ๊ฑฐํ๊ณ ๋ค์ ์ค์นํ์ญ์์ค.
์ด๋ป๊ฒ ์ค์นํ์
จ๋์? ํ? Sudo(sudo๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ ๊ทธ ์ด์ ๊ฐ ๋ ์ ์์ผ๋ฏ๋ก pip์ ํจ๊ป sudo๋ฅผ ์ฌ์ฉํ์ง ๋ง์ญ์์ค)
๋ฌด์์ํฉ๋๊น
python -c 'import prompt_toolkit.eventloop; print(prompt_toolkit.eventloop.__file__)'
๋งํ๋ค?
/home/qleegb/.local/lib/python3.6/site-packages/prompt_toolkit/eventloop/__init__.py
$ ์์ดํ์ด์ฌ3
์ญ์ถ์ (๊ฐ์ฅ ์ต๊ทผ ํธ์ถ ๋ง์ง๋ง):
ํ์ผ "/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/qleeb/.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 ๋ฐ ํ๋กฌํํธ ํดํท์ ์ ๊ฑฐํด ๋ณด์ญ์์ค. ์ ์ฌ์ ์ผ๋ก ์ฌ๋ฌ 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 ๋ฐ ํ๋กฌํํธ ํดํท ์ฌ์ค์น
๋๋ถ์ ํจ๊ณผ๊ฐ ์์์ต๋๋ค. ๋ค๋ฅธ ์ฌ๋๋ค์ด ๊ฐ์ ์ํฉ์ ์ฒํ ๊ฒฝ์ฐ๋ฅผ ๋๋นํ์ฌ ๊ธฐ๋ณธ ํ๊ฒฝ์์ jupyter๋ฅผ ์์ํ ๋๋ ๋ฌธ์ ๊ฐ ์๋ conda ํ๊ฒฝ ๋ด์์ pip ์ ๊ฑฐ/์ค์น๋ฅผ ์ํํด์ผ ํ์ต๋๋ค.
python3.7์ ๊ฒฝ์ฐ @stas00์ ํ์๋ ๋๋ก ipython
๋ฐ prompt_toolkit
๋ฅผ ๋ชจ๋ ์ ๊ฑฐํ๊ณ ํธํ๋๋ prompt_toolkit
์ค์นํ๋๋ก ipython
๋ง ์ค์นํ์ต๋๋ค. ๊ทธ ์์ฒด
pip uninstall -y ipython prompt_toolkit
pip install ipython
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋น์ ์ด ์ ์ํ ๋๋ก:
python-3.7์์ ๋๋ฅผ ์ํด ์์ ํ์ต๋๋ค.
๊ฐ์ฌํฉ๋๋ค.