web-dev-qa-db-fra.com

L'objet 'PyDevTerminalInteractiveShell' n'a pas d'attribut 'has_readline'

J'utilise Pycharm2016.1 sur CentOS7 et je teste "Show command line afterwards "et j'ai eu ce problème:

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'
37
chenfei

Ce problème PyCharm se produit en raison de modifications apportées à l'api iPython avec iPython version 5. Jusqu'à ce que Jetbrains corrige cela, le retour à une version antérieure de iPython (version 4) corrigera ce problème. . Comme @chenfei l'a découvert, cela peut être fait via pip:

$ pip uninstall ipython
$ pip install ipython==4.2.0

Modifier

Et si vous ne pouvez pas attendre aussi longtemps, Jetbrains a publié un patch

https://youtrack.jetbrains.com/issue/PY-20013#comment=27-1512407

Édition finale

Ce problème a été corrigé dans PyCharm 2016.2

49
danodonovan

J'ai résolu mon problème en installant ipython version 4.2:

pip uninstall ipython
pip install ipython==4.2.0
11
chenfei

La façon dont j'ai réussi à résoudre ce problème sans rétrograder iPython était:

1 - Téléchargez le patch suivant:

https://youtrack.jetbrains.com/_persistent/pycharm_ipython5_fix.patch?file=74-327779&c=true

2 - Dans PyCharm, créez un nouveau projet situé sur:

<PyCharm installation folder>/helpers/pydev/_pydev_bundle/

Pycharm vous invitera à importer les fichiers de ce dossier, acceptez .

3 - Cliquez sur VCS et choisissez Apply Patch

4 - Choisissez le fichier que vous avez téléchargé sur étape 1 .

5 - Le Apply Patch s'ouvre, cliquez sur OK

6 - Redémarrer PyCharm

La console Python devrait maintenant fonctionner dans PyCharm


PS: Vous pouvez supprimer le dossier de projet (.idea) que vous avez créé sur Étape 2

6
Pedro Lobito
1
sharez