Ваш 'python-shell-интерпретатор', кажется, не поддерживает readline


13

У меня есть эта проблема с моими 25.1 и Python 3.5 на Ubuntu 16.10, но я не вижу, чтобы это где-то решалось. Интересно, каков был последний статус. Размножение:

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

тогда

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.

Я видел одну идею, где M-x find-function python-shell-completion-native-tryфункция должна была бы вытащить функцию из глубины, (/usr/local/share/emacs/25.1/lisp/progmodes/python.el.gzа самая последняя строка должна была быть, nil "_")))а нет nil ""))). Другой разговор здесь говорит об измененииinputrc

Я переключился на другого пользователя и смог использовать `run-python 'без каких-либо предупреждений. Оказывается, это были мои настройки readline. В Bash 4.3 добавлена ​​новая функция readline: «установить цветную статистику», которая была у меня в .inputrc Удаление этой строки решило мою проблему, я думаю, что это должно быть воспроизводимо для всех.

Кто-нибудь знает, что нового по этому поводу? Кстати, запуск Python2 ( (setq org-babel-python-command "python2")) не имеет этой проблемы.


Ошибка Emacs, с которой вы связаны, помечена как исправленная для 25.2 (еще не выпущена), поэтому вы должны ожидать, что она все еще будет присутствовать в 25.1. Вы можете попробовать предварительную версию (25.1.9x).
npostavs

Знаете, когда выйдет 25.2?
147 часов

Может месяц или около того? Вы можете попробовать предварительный тест (25.1.91) прямо сейчас alpha.gnu.org/gnu/emacs/pretest
npostavs

У меня те же симптомы («Ваш« python-shell-интерпретатор », кажется, не поддерживает readline») при запуске Python 3.6.0 и GNU Emacs 25.2 RC1 в Windows 10, поэтому либо проблема еще не решена, а может это другая проблема?
Мартин

Ответы:


10

Если вы не хотите получать 25.2 RC, вы можете применить исправление ошибки, добавив это в ваш файл 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


Работает как шарм. Спасибо, что поделился.
Дангом

2
По какой-то причине добавление этого (setq python-shell-completion-native-enable nil)в мой init.elфайл сработало, не требуя кода выше.
Гильерме Саломе

@ GuilhermeSalomé, который подавляет предупреждение, но вы не получите собственное завершение. Если вы работаете в Windows, это правильно .
npostavs

5
Даже на Emacs 26.1 я все еще получаю эту проблему.
Гильерме Саломе

1
Также на Emacs 26.2, и этот ответ все еще работает.
Зои Рова

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.