Объект PyDevTerminalInteractiveShell не имеет атрибута 'has_readline'
Я использую Pycharm
2016.1
на CentOS7
и я тестирую " Show command line afterwards
", и я получил эту проблему:
AttributeError: 'PyDevTerminalInteractiveShell' object has no attribute 'has_readline'
/usr/bin/python3.4 /usr/local/pycharm/helpers/pydev/pydev_run_in_console.py 37196 52554 /root/PycharmProjects/mytf/mytest/test5.py
Traceback (most recent call last):
File "/usr/local/pycharm/helpers/pydev/pydev_run_in_console.py", line 63, in <module>
interpreter = InterpreterInterface(host, int(client_port), threading.currentThread())
File "/usr/local/pycharm/helpers/pydev/_pydev_bundle/pydev_ipython_console.py", line 26, in __init__
self.interpreter = get_pydev_frontend(host, client_port, show_banner=show_banner)
File "/usr/local/pycharm/helpers/pydev/_pydev_bundle/pydev_ipython_console_011.py", line 473, in get_pydev_frontend
_PyDevFrontEndContainer._instance = _PyDevFrontEnd(show_banner=show_banner)
File "/usr/local/pycharm/helpers/pydev/_pydev_bundle/pydev_ipython_console_011.py", line 303, in __init__
self.ipython = PyDevTerminalInteractiveShell.instance()
File "/usr/lib/python3.4/site-packages/traitlets/config/configurable.py", line 412, in instance
inst = cls(*args, **kwargs)
File "/usr/lib/python3.4/site-packages/IPython/terminal/interactiveshell.py", line 359, in __init__
super(TerminalInteractiveShell, self).__init__(*args, **kwargs)
File "/usr/lib/python3.4/site-packages/IPython/core/interactiveshell.py", line 487, in __init__
self.init_completer()
File "/usr/local/pycharm/helpers/pydev/_pydev_bundle/pydev_ipython_console_011.py", line 222, in init_completer
self.Completer = self._new_completer_200()
File "/usr/local/pycharm/helpers/pydev/_pydev_bundle/pydev_ipython_console_011.py", line 194, in _new_completer_200
use_readline=self.has_readline,
AttributeError: 'PyDevTerminalInteractiveShell' object has no attribute 'has_readline'
Ответы
Ответ 1
Эта проблема PyCharm возникает из-за изменений iPython
api с iPython
версией 5. До тех пор, пока Jetbrains не исправит это, возврат к более ранней версии iPython
(версия 4) исправит это. Как выяснил @chenfei, это можно сделать с помощью pip
:
$ pip uninstall ipython
$ pip install ipython==4.2.0
Изменить
И если вы не можете так долго ждать, Jetbrains выпустили патч
https://youtrack.jetbrains.com/issue/PY-20013#comment=27-1512407
Финальное редактирование
Эта проблема исправлена в PyCharm 2016.2
Ответ 2
Я решил свою проблему, установив ipython версии 4.2:
pip uninstall ipython
pip install ipython==4.2.0
Ответ 3
Мне удалось решить эту проблему без понижения iPython
:
1 - Загрузите следующий патч:
https://youtrack.jetbrains.com/_persistent/pycharm_ipython5_fix.patch?file=74-327779&c=true
2 - Внутри PyCharm
создайте новый проект, расположенный на:
<PyCharm installation folder>/helpers/pydev/_pydev_bundle/
Pycharm
предложит вам импортировать файлы в эту папку, примите.
3 - Нажмите VCS и выберите Apply Patch
4 - Выберите файл, который вы скачали на шаге 1.
5 - Откроется окно Apply Patch, нажмите OK
6 - перезапустить PyCharm
Консоль Python должна теперь работать внутри PyCharm
PS: Вы можете удалить папку проекта (.idea), созданную на шаге 2
Ответ 4
Решено в Pycharm 2016.2. Глянь сюда:
https://intellij-support.jetbrains.com/hc/en-us/community/posts/207207329-ipython-5-not-supported-by-Pycharm-s-python-console-