あなたの 'python-shell-interpreter'は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 "_")))ではないはずだった1つのアイデアを見ました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 2017年

25.2のリリースを知っていますか?
1

たぶん一ヶ月ぐらい?プレテスト(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をサポートしていないようです」)があるので、問題はまだ解決していません。それとも別の問題ですか?
マーティン

回答:


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éがネイティブの完了を取得しません。あなたがWindowsを使っているなら、それは正しいことです
npostavs

5
Emacs 26.1でも、この問題が発生します。
ギルヘルメサロメ

1
Emacs 26.2でも、この答えはまだ機能します。
Zoe Rowa

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.