Si je pensais que les complétions d'elpy étaient gênantes, l'environnement python n'était pas celui de pyenv mais celui du système. Notez que.
elpy? https://elpy.readthedocs.io/en/latest/index.html
Un gars intelligent qui fait des fonctionnalités de type IDE dans le développement python.
Etc. Pour les amener à le faire, il semble que le jedi que j'ai installé avec pip install jedi le fera pour moi.
Vu avec 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 est 3.5.2, mais pour une raison quelconque, RPC Python est 2.7.12. .. .. 2.7.12, c'est quand j'ai frappé la commande python sur le système, donc pour une raison quelconque, pyenv ne fonctionnait pas bien et je faisais référence à celle sur le système.
Bien sûr, l'environnement dans lequel jedi est placé n'est pas inclus dans le système car il s'agit de ml_test de virtual_env. Par conséquent, la complémentation devient stupide.
https://github.com/jorgenschaefer/elpy/issues/803 C'est étouffant parce que l'auteur est étouffant.
https://github.com/gregnewman/emacs.d/blob/master/greg.org Écrivez un script qui définit .python-version pour qu'il soit bien lu par vous-même, en vous référant à. C'était étonnamment facile.
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)
Ou ajoutez-le à .emacs. 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")