'Python-shell-interpreter' Anda sepertinya tidak mendukung readline


13

Saya punya masalah dengan 25.1 dan Python 3.5 saya di Ubuntu 16.10, tapi saya tidak melihatnya diselesaikan di mana saja. Ingin tahu apa status terbaru itu. Mereproduksi:

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

kemudian

M-x run-python memberi

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.

Saya melihat satu ide di mana sebuah M-x find-function python-shell-completion-native-tryakan menarik fungsi dari dalam (/usr/local/share/emacs/25.1/lisp/progmodes/python.el.gzdan baris terakhir seharusnya nil "_")))dan tidak nil ""))). Pembicaraan lain di sini berbicara tentang perubahaninputrc

Saya beralih ke pengguna lain dan saya bisa menggunakan `run-python 'tanpa peringatan apa pun. Ternyata itu adalah pengaturan readline saya. Bash 4.3 menambahkan fitur readline baru: "set berwarna-statistik pada" yang saya miliki di .inputrc Menghapus baris itu memperbaiki masalah saya, saya pikir ini harus dapat direproduksi untuk semua.

Adakah yang tahu apa yang terbaru tentang ini? BTW, menjalankan Python2 ( (setq org-babel-python-command "python2")) tidak memiliki masalah ini.


Bug Emacs yang Anda tautkan ditandai telah diselesaikan untuk 25.2 (belum dirilis), jadi Anda harus mengharapkannya tetap ada di 25.1. Anda dapat mencoba versi pretest (25.1.9x).
npostavs

Tahu kapan 25.2 sedang keluar?
147 sore

Mungkin sekitar sebulan? Anda dapat mencoba pretest (25.1.91) sekarang alpha.gnu.org/gnu/emacs/pretest
npostavs

Saya mengalami gejala yang sama ("Penerjemah python-shell-Anda 'sepertinya tidak mendukung readline") menjalankan Python 3.6.0 dan GNU Emacs 25.2 RC1 pada Windows 10, jadi masalahnya belum terpecahkan, atau mungkin itu masalah yang berbeda?
Martin

Jawaban:


10

Jika Anda tidak ingin mendapatkan 25.2 rc, Anda dapat menerapkan perbaikan bug dengan menambahkan ini ke file init.el Anda:

(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


Bekerja seperti pesona. Terima kasih telah berbagi.
dangom

2
Untuk beberapa alasan menambahkan ini (setq python-shell-completion-native-enable nil)ke init.elfile saya berfungsi, tanpa memerlukan kode di atas.
Guilherme Salomé

@ GuilhermeSalomé yang menekan peringatan, tetapi Anda tidak mendapatkan penyelesaian asli. Jika Anda menggunakan Windows, itu hal yang benar untuk dilakukan .
npostavs

5
Bahkan pada Emacs 26.1 saya masih mendapatkan masalah ini.
Guilherme Salomé

1
Juga pada Emacs 26.2, dan jawaban ini masih berfungsi.
Zoe Rowa

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.