Il tuo "interprete shell-python" non sembra supportare readline


13

Ho questo problema con il mio 25.1 e Python 3.5 su Ubuntu 16.10, ma non vedo che venga risolto da nessuna parte. Mi chiedevo quale fosse l'ultimo stato. riprodurre:

> emacs -Q --eval '(setq python-shell-interpreter "python3")'

poi

M-x run-python

Warning (python): Your ‘python-shell-interpreter’ doesn’t seem to support readline, yet ‘python-shell-completion-native’ was t and "python3" is not part of the ‘python-shell-completion-native-disabled-interpreters’ list.  Native completions have been disabled locally.

Ho visto un'idea di dove si M-x find-function python-shell-completion-native-trysarebbe tirato su la funzione dal profondo (/usr/local/share/emacs/25.1/lisp/progmodes/python.el.gze l'ultima riga avrebbe dovuto essere nil "_")))e non nil ""))). Un'altra conversazione qui parla del cambiamentoinputrc

Sono passato a un altro utente e sono stato in grado di usare `run-python 'senza alcun avviso. Si è scoperto che erano le mie impostazioni readline. Bash 4.3 ha aggiunto una nuova funzione readline: "imposta statistiche colorate su" che avevo in .inputrc La rimozione di quella riga ha risolto il mio problema, penso che questo dovrebbe essere riproducibile per tutti.

Qualcuno sa quale sia l'ultimo su questo? A proposito, l'esecuzione di Python2 ( (setq org-babel-python-command "python2")) non presenta questo problema.


Il bug di Emacs a cui sei collegato è contrassegnato come risolto per 25.2 (non ancora rilasciato), quindi dovresti aspettarti che sia ancora presente in 25.1. Puoi provare la versione pretest (25.1.9x).
npostavs

Sai quando esce il 25.2?
147pm

Forse un mese o giù di lì? Puoi provare il pretest (25.1.91) ora alpha.gnu.org/gnu/emacs/pretest
npostavs

Ho gli stessi sintomi ("Il tuo 'interprete di shell python' non sembra supportare readline") con Python 3.6.0 e GNU Emacs 25.2 RC1 su Windows 10, quindi o il problema non è stato ancora risolto, o forse è un problema diverso?
Martin,

Risposte:


10

Se non vuoi ottenere un 25.2 rc, puoi applicare la correzione di bug aggiungendo questo al tuo file init.el:

(with-eval-after-load 'python
  (defun python-shell-completion-native-try ()
    "Return non-nil if can trigger native completion."
    (let ((python-shell-completion-native-enable t)
          (python-shell-completion-native-output-timeout
           python-shell-completion-native-try-output-timeout))
      (python-shell-completion-native-get-completions
       (get-buffer-process (current-buffer))
       nil "_"))))

https://debbugs.gnu.org/cgi/bugreport.cgi?bug=25753#44


Funziona come un fascino. Grazie per la condivisione.
dangom

2
Per qualche motivo l'aggiunta di questo (setq python-shell-completion-native-enable nil)al mio init.elfile ha funzionato, senza richiedere il codice sopra.
Guilherme Salomé,

@ GuilhermeSalomé che sopprime l'avviso, ma non ottieni il completamento nativo. Se sei su Windows, questa è la cosa giusta da fare .
npostavs

5
Anche su Emacs 26.1 ho ancora questo problema.
Guilherme Salomé,

1
Anche su Emacs 26.2, e questa risposta funziona ancora.
Zoe Rowa,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.