[PYTHON] Présentez elpy à emacs

Table of Contents

  1. [Introduction](# orgc6070a6)
  2. [Je déteste les emacs](# org85eb6ff)
  3. [Qu'est-ce que elpy](# org95f68a5)
  4. [Introduction d'elpy](# org4db3c00)
  5. Ajouter le référentiel Melpa (# orgd8a887d)
  6. Charger le package (# org4d233fb)
  7. [Activer le package](# orga71c8b8)
  8. [Apportez un package à installer avec pip](# orgfddbff4)
  9. [Confirmer](# org68d0e96)
  10. [À la fin](# org1905831)

introduction

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/.

Ce que je déteste chez emacs

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.

Qu'est-ce que elpy

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.

Introduction d'elpy

Ajouter un référentiel melpa

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/")

Chargez le package

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.

Activez le package

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"

Apportez le package à installer avec pip

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.

Confirmer

Ouvrez le fichier python .py, tapez M-x elpy-config et appuyez sur la touche retour. elpy-config.png

Cette fois, cela a fonctionné. Les colis que j'ai apportés étaient tous reconnus.

À la fin

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

Présentez elpy à emacs
Présentation de serverspec à Linux
J'ai essayé de présenter Pylint
Essayez d'introduire le thème sur Pelican
Introduire de force la traduction en temps réel dans Zoom
emacs + elpy + pyenv-virtualenv utilise le système python
L'espace de travail Emacs perspective.el est plus facile à utiliser
[Rails] Comment présenter Google Analytics [Facile]
Introduire la bibliothèque Python TRML2PDF dans MacOSX (10.11.xx)
[Python] Présentez UIKit3 au projet Django