Table of Contents
J'ai précédemment échoué à déployer elpy. elpy est un package qui fait d'emacs un environnement intégré (IDE) pour Python.
Je ne connais pas la cause, mais ça n'a pas marché, peu importe mes efforts. J'ai abandonné après essais et erreurs pendant environ 3 jours. Il y a une histoire selon laquelle il est mauvais d'utiliser emacs même si je n'ai aucune capacité, mais je ne peux pas passer à un autre environnement parce que mes doigts y sont habitués.
Depuis que j'ai récemment réintroduit Python, j'écris du code Python en utilisant emacs comme éditeur régulier. J'ai toujours été envieux quand je regardais de côté un collègue qui utilisait la fonction d'auto-complétion de l'EDI. Alors, j'ai pris l'initiative et j'ai essayé de réintroduire elpy.
Cet article est une copie complète </ del> référence à Article d'introduction à Real Python.
Cet article a également été publié sur mon blog https://achiwa912.github.io/.
Du coup, je n'aime pas les emacs. Il existe de nombreux utilisateurs avancés d'emacs à bien des égards. Il n'y a pas beaucoup d'articles d'introduction pour les débutants, ou même s'ils le sont, ils sont souvent trop avancés pour être compris.
Je suis toujours nerveux lors de la réécriture du fichier de configuration .emacs.d / init.el. J'aurais dû l'écrire selon les conseils de l'article d'introduction, mais j'obtiens beaucoup d'erreurs incompréhensibles et emacs devient inutile.
Je suis sûr que les utilisateurs emacs aiment les choses épicées mazo </ del>.
C'est pourquoi je déteste le fait qu'emacs ne puisse pas faire diverses aventures. Je ressens la pression pour maintenir le statu quo. En parlant d'aventures au cours des 10 dernières années, j'ai commencé à utiliser le mode org et j'ai introduit elpy cette fois.
Revenons à elpy. elpy signifie Emacs Python Development Environment, qui fournit les fonctionnalités suivantes de l'IDE Python:
De plus, si vous incluez un package qui fonctionne avec elpy, vos emacs seront transformés en un bon IDE comparable à cet autre IDE.
Immédiatement, modifiez l'exemple init.el. Puisque elpy vient d'un dépôt de paquets emacs appelé melpa, nous devons faire en sorte qu'emacs aille voir melpa. Mes paramètres pour cette partie sont les suivants.
(require 'package)
(setq package-archives
'(("gnu" . "http://elpa.gnu.org/packages/")
("melpa" . "http://melpa.org/packages/")
("org" . "http://orgmode.org/elpa/")))
(package-initialize)
(when (not package-archive-contents)
(package-refresh-contents))
C'est la partie qui est importante.
("melpa" . "http://melpa.org/packages/")
Ensuite, apportez les packages requis de melpa et autres. J'ai obtenu cette méthode de Real Python, mais c'est plutôt bon. Tout d'abord, les packages nécessaires sont définis comme myPackages, et s'il n'est pas installé après cela, il sera installé automatiquement.
(defvar myPackages
'(better-defaults
elpy
flycheck ;; On the fly syntax checking
py-autopep8 ;; Run autopep8 on save
blacken ;; Black formatting on save
material-theme
)
)
(mapc #'(lambda (package)
(unless (package-installed-p package)
(package-install package)))
myPackages)
J'ai lu divers paquets en plus d'elpy, mais je vais les expliquer brièvement.
--better-defaults - Il semble que les paramètres par défaut d'emacs améliorent les points faibles. Pour l'instant, je ne sais pas ce qui a changé, mais je vais le mettre en quelque sorte. --flycheck --La vérification grammaticale est effectuée à la volée. --py-autopep8 --Lors de l'enregistrement, il vérifie la conformité pep8 et la corrige sans autorisation. --blacken --Lors de l'enregistrement, il vérifiera le format du noir et le corrigera sans autorisation. ――Material-theme ――Ce thème était plutôt bon, donc je suis passé de celui que j'utilisais jusqu'à présent.
Ensuite, activez le package. Cela a également été simplement copié de Real Python comme un Nembutsu, mais cela semble avoir bien fonctionné. De plus, je mets tout d'un coup ici, mais si une erreur se produit, je ne saurai pas ce qui ne va pas, donc je pense qu'il vaut mieux l'ajouter en le déplaçant petit à petit.
(load-theme 'material t)
;; elpy
(elpy-enable)
(setq elpy-rpc-virtualenv-path 'current)
;; Flycheck
(when (require 'flycheck nil t)
(setq elpy-modules (delq 'elpy-module-flymake elpy-modules))
(add-hook 'elpy-mode-hook 'flycheck-mode))
;; autopep8
(require 'py-autopep8)
(add-hook 'elpy-mode-hook 'py-autopep8-enable-on-save)
Il y a une mise en garde. J'utilise venv au lieu du populaire virtualenv, j'ai donc suivi le message d'erreur initial et ai fait ce qui suit: Je suis désolé s'il y a des effets secondaires.
(setq elpy-rpc-virtualenv-path 'current)
Et en faisant cela, on m'a dit de mettre ~ / .local / bin dans la variable d'environnement PATH, j'ai donc modifié ~ / .zshrc (macOS).
export PATH="$HOME/.local/bin:$PYENV_ROOT/bin:$PATH"
Utilisez pip pour apporter des paquets qui ne peuvent pas être importés de melpa.
pip3 install jedi flake8 autopep8 yapf black
Je pense que c'était comme ça. En fait, je les ai installés un par un, alors j'ai écrit en regardant l'historique.
Ouvrez le fichier python .py, tapez M-x elpy-config et appuyez sur la touche retour.
Cette fois, cela a fonctionné. Les colis que j'ai apportés étaient tous reconnus.
L 'article d'introduction à Real Python mentionné ci-dessus commence par l'explication d'emacs, donc je l'ai accidentellement oublié, mais dans de nombreuses recherches C'était l'article le plus utile. Je suis heureux qu'il y ait peu d'articles emacs pour les débutants. Merci, Real Python.
Recommended Posts