Подтвердить что ты не робот

Объект 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'
4b9b3361

Ответ 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