您的“ python-shell-解释器”似乎不支持readline


13

我在Ubuntu 16.10上使用我的25.1和Python 3.5遇到了这个问题,但是我看不到任何地方都可以解决。想知道最新状态是什么。复制:

> 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中的“ set color-stats on”。删除该行解决了我的问题,我认为这应该对所有人都可以重现。

有人知道最新消息吗?顺便说一句,运行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

我在Windows 10上运行Python 3.6.0和GNU Emacs 25.2 RC1时出现了相同的症状(“您的'python-shell-interpreter'似乎不支持readline”),因此问题尚未解决,也许这是一个不同的问题?
马丁,

Answers:


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


奇迹般有效。感谢分享。
dangom

2
由于某种原因,将此文件添加(setq python-shell-completion-native-enable nil)到我的init.el文件中可以正常工作,而无需上面的代码。
GuilhermeSalomé18年

@GuilhermeSalomé禁止显示警告,但您不会获得本机完成。如果您使用Windows,那是正确的选择
npostavs

5
即使在Emacs 26.1上,我仍然遇到此问题。
GuilhermeSalomé18年

1
同样在Emacs 26.2上,此答案仍然有效。
佐伊·罗瓦

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.