Wenn ich dachte, dass alle Komplemente von elpy umständlich sind, war die Python-Umgebung nicht die von pyenv, sondern die des Systems. Beachten Sie, dass.
elpy? https://elpy.readthedocs.io/en/latest/index.html
Ein kluger Kerl, der IDE-ähnliche Funktionen in der Python-Entwicklung ausführt.
Und so weiter. Um sie dazu zu bringen, scheint es, dass der Jedi, den ich mit pip install jedi eingegeben habe, es für mich tun wird.
Gesehen mit M-x elpy-config
1 Elpy Configuration
2
3 Virtualenv........: ml_test (/home/harumitsu.nobuta/.pyenv/versions/3.5.2/envs/ml_test)
4 RPC Python........: 2.7.12 (/home/harumitsu.nobuta/.pyenv/shims/python)
5 Interactive Python: python (/home/harumitsu.nobuta/.pyenv/shims/python)
6 Emacs.............: 24.5.1
7 Elpy..............: 1.15.1
8 Jedi..............: Not found (0.10.2 available)
9 Rope..............: Not found (0.10.5 available)
10 Importmagic.......: Not found (0.1.7 available)
11 Autopep8..........: Not found (1.3.2 available)
12 Yapf..............: Not found (0.16.3 available)
13 Syntax checker....: flake8 (/home/harumitsu.nobuta/.pyenv/shims/flake8)
14
Virtualenv ist 3.5.2, aber aus irgendeinem Grund ist RPC Python 2.7.12. .. .. 2.7.12 ist, wenn ich den Python-Befehl auf dem System drücke. Aus irgendeinem Grund hat pyenv nicht gut funktioniert und ich habe auf den auf dem System verwiesen.
Natürlich ist die Umgebung, in der jedi platziert wird, nicht im System enthalten, da es sich um ml_test von virtual_env handelt. Daher wird Komplementation dumm.
https://github.com/jorgenschaefer/elpy/issues/803 Es ist stickig, weil der Autor stickig ist.
https://github.com/gregnewman/emacs.d/blob/master/greg.org Schreiben Sie ein Skript, das die Python-Version so einstellt, dass sie selbst gut liest. Es war überraschend einfach.
https://github.com/halhorn/.emacs.d/blob/master/elisp/set-pyenv-version-path.el
el:.emacs.d/elisp/set-pyenv-version-path.el
(defun set-pyenv-version-path ()
"Automatically activates pyenv version if .python-version file exists."
(f-traverse-upwards
(lambda (path)
(let ((pyenv-version-path (f-expand ".python-version" path)))
(if (f-exists? pyenv-version-path)
(pyenv-mode-set (s-trim (f-read-text pyenv-version-path 'utf-8))))))))
(provide 'set-pyenv-version-path)
Oder fügen Sie es zu .emacs hinzu. https://github.com/halhorn/.emacs.d/blob/master/init.el#L193
el:.emacs.d/init.el
(require 'set-pyenv-version-path)
(add-hook 'find-file-hook 'set-pyenv-version-path)
(add-to-list 'exec-path "~/.pyenv/shims")