'Trình thông dịch shell-python' của bạn dường như không hỗ trợ đường dẫn


13

Tôi đã gặp vấn đề này với 25.1 và Python 3.5 trên Ubuntu 16.10, nhưng tôi không thấy nó được giải quyết ở bất cứ đâu. Tự hỏi tình trạng mới nhất là gì. Tái tạo:

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

sau đó

M-x run-python cho

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.

Tôi đã thấy một ý tưởng trong đó một cái M-x find-function python-shell-completion-native-trysẽ kéo hàm từ sâu xuống (/usr/local/share/emacs/25.1/lisp/progmodes/python.el.gzvà dòng cuối cùng được cho là có nil "_")))và không nil ""))). Một cuộc trò chuyện khác ở đây nói về việc thay đổiinputrc

Tôi đã chuyển sang một người dùng khác và tôi đã có thể sử dụng 'run-python' mà không có bất kỳ cảnh báo nào. Hóa ra đó là cài đặt sẵn của tôi. Bash 4.3 đã thêm một tính năng đọc mới: "thiết lập các số liệu thống kê màu" mà tôi có trong .inputrc Xóa dòng đó đã khắc phục vấn đề của tôi, tôi nghĩ rằng điều này sẽ có thể lặp lại cho tất cả.

Bất cứ ai cũng biết những gì mới nhất về điều này? BTW, chạy Python2 ( (setq org-babel-python-command "python2")) không có vấn đề này.


Lỗi Emacs mà bạn liên kết được đánh dấu là đã giải quyết cho 25.2 (chưa được phát hành), vì vậy bạn nên mong đợi nó vẫn còn hiện diện trong 25.1. Bạn có thể thử phiên bản trước (25.1.9x).
npostavs

Biết khi nào hết 25.2?
147 giờ tối

Có lẽ một tháng hoặc lâu hơn? Bạn có thể thử giả vờ (25.1.91) ngay bây giờ alpha.gnu.org/gnu/emacs/pretest
npostavs

Tôi đã có cùng một triệu chứng ("Trình thông dịch trình dịch python-shell" của bạn dường như không hỗ trợ đường đọc ") chạy Python 3.6.0 và GNU Emacs 25.2 RC1 trên Windows 10, vì vậy vấn đề chưa được giải quyết, hoặc có thể đó là một vấn đề khác?
Martin

Câu trả lời:


10

Nếu bạn không muốn nhận một chiếc RC 25.2, bạn có thể áp dụng sửa lỗi bằng cách thêm nó vào tệp init.el của bạn:

(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/orpreport.cgi?orms=25753#44


Hoạt động như một lá bùa. Cám ơn vì đã chia sẻ.
dangom

2
Vì một số lý do, việc thêm tệp này (setq python-shell-completion-native-enable nil)vào init.eltệp của tôi đã hoạt động mà không yêu cầu mã ở trên.
Guilherme Salomé

@ GuilhermeSalomé ngăn chặn cảnh báo, nhưng bạn không được hoàn thành bản địa. Nếu bạn đang dùng Windows, đó là điều nên làm .
npostavs

5
Ngay cả trên Emacs 26.1 tôi vẫn gặp vấn đề này.
Guilherme Salomé

1
Cũng trên Emacs 26.2, và câu trả lời này vẫn hoạt động.
Zoe Rowa

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.