37 votes

L'objet 'PyDevTerminalInteractiveShell' ne possède pas l'attribut 'has_readline'.

J'utilise Pycharm 2016.1 en 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'

2 votes

C'était un problème connu youtrack.jetbrains.com/issue/PY-20013 qui est corrigé dans PyCharm 2016.2.

49voto

danodonovan Points 5268

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

$ pip uninstall ipython
$ pip install ipython==4.2.0

Editar

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

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

Montage final

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

11voto

chenfei Points 389

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

pip uninstall ipython
pip install ipython==4.2.0

6voto

Pedro Lobito Points 6794

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

1 - Téléchargez le patch suivant :

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

2 - Intérieur PyCharm créer un nouveau projet situé sur :

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

Pycharm vous demandera d'importer les fichiers de ce dossier, accepter .

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émarrage PyCharm

La console Python devrait maintenant fonctionner à l'intérieur. PyCharm


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

1voto

sharez Points 520

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X