Seu 'python-shell-interpreter' não parece suportar a linha de leitura


13

Eu tenho esse problema com meus 25.1 e Python 3.5 no Ubuntu 16.10, mas não vejo isso sendo resolvido em nenhum lugar. Pensando em qual era o status mais recente. Reprodução:

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

então

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.

Eu vi uma ideia de onde um M-x find-function python-shell-completion-native-trypuxaria a função do fundo (/usr/local/share/emacs/25.1/lisp/progmodes/python.el.gze a última linha deveria estar nil "_")))e não nil ""))). Outra conversa aqui fala sobre mudarinputrc

Troquei para outro usuário e pude usar o `run-python 'sem nenhum aviso. Acontece que foram minhas configurações de linha de leitura. O Bash 4.3 adicionou um novo recurso de linha de leitura: "definir estatísticas coloridas" em que eu estava.

Alguém sabe o que há de mais recente nisso? BTW, executando Python2 ( (setq org-babel-python-command "python2")) não tem esse problema.


O bug do Emacs ao qual você vinculou está marcado como resolvido para 25.2 (ainda não lançado), portanto, você deve esperar que ele ainda esteja presente no 25.1. Você pode tentar a versão pré-teste (25.1.9x).
N18

Sabe quando 25.2 saiu?
147pm 18/01/19

Talvez um mês mais ou menos? Você pode tentar o pré-teste (25.1.91) agora alpha.gnu.org/gnu/emacs/pretest
npostavs

Tenho os mesmos sintomas ("Seu 'python-shell-intérprete' parece não suportar a linha de leitura") executando o Python 3.6.0 e o GNU Emacs 25.2 RC1 no Windows 10; portanto, o problema ainda não está resolvido, ou talvez seja um problema diferente?
Martin Martin

Respostas:


10

Se você não deseja obter um 25.2 rc, pode aplicar a correção de bug adicionando isso ao seu arquivo 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


Funciona como um encanto. Obrigado por compartilhar.
dangom

2
Por alguma razão, adicionar isso (setq python-shell-completion-native-enable nil)ao meu init.elarquivo funcionou, sem a necessidade do código acima.
Guilherme Salomé

@ GuilhermeSalomé que suprime o aviso, mas você não obtém a conclusão nativa. Se você estiver no Windows, é a coisa certa a fazer .
N

5
Mesmo no Emacs 26.1, continuo com esse problema.
Guilherme Salomé

1
Também no Emacs 26.2, e essa resposta ainda funciona.
precisa saber é o seguinte

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.