Здається, ваш інтерпретатор python-shell-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функція a bi піднімає функцію з глибокого, (/usr/local/share/emacs/25.1/lisp/progmodes/python.el.gzі останній рядок повинен був бути, nil "_")))а ні nil ""))). Ще одна розмова тут говорить про зміниinputrc

Я перейшов на іншого користувача, і мені вдалося використовувати `run-python 'без будь-яких попереджень. Виявляється, це були мої настройки для читання ліній. Bash 4.3 додав нову функцію readline: "встановити кольорову статистику", яку я мав у .inputrc Видалення цього рядка виправило мою проблему, я думаю, це має бути відтвореним для всіх.

Хтось знає, що найновіше з цього питання? BTW, запуск Python2 ( (setq org-babel-python-command "python2")) не має цієї проблеми.


Помилка Emacs, з якою ви пов’язані, позначена як вирішена для 25.2 (ще не випущена), тому слід очікувати, що вона все ще буде присутня в 25.1. Ви можете спробувати попередню версію (25.1.9x).
nпостаs

Знаєш, коли 25,2 вийшов?
147 вечора

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

У мене такі самі симптоми ("Схоже, ваш" python-shell-shell-interpreter "не підтримує 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.