プログラミング原人の進化ログ

プログラミング原人の進化論

オレ プログラミング ベンキョウ スル。マナンダ コト カク。

Emacsでelpyを使ったPython開発環境を設定した

elpyを入れたので、インストール方法と設定を書いておきます。ちょっとつまったのででそれの解決法のメモを兼ねてます。

環境

Mac OS X 10.14.5

Emacs 26.1

elpyとは?

Emacs用のPython開発環境です。これ一つで必要なパッケージが一通り揃います。

elpyを使えるようにする

普段package-installを使っているのですが、なぜかうまくいかなかったので、M-x package-list-packagesでインストールしました。

使えるようにするにはinit.elなどに

(package-initialize)
(elpy-enable)

と書いておきます。pythonファイルを開けば勝手に使えるようになります。

必要に応じて、各種ツールをインストールしておきます。

設定

pythonを使うために色々設定したので載せておきます。現在どのツールを使っているかはM-x elpy-configでチェックできます。 足りないパッケージがあれば教えてくれるので、それに従って必要なものをインストールします。f:id:programgenjin:20190607210240p:plain

marmaladeでインストールしたら自動フォーマッタ(yapfとかblackとか)をelpaが認識してくれなかったので、elpaのものを入れ直したらうまく行きました。

以下は個人的な設定です。

(add-hook 'elpy-mode-hook
          '(lambda ()
             ;; keybind
             (define-key elpy-mode-map (kbd "C-,") 'elpy-nav-indent-shift-left)  ;; 左にインデント1つ分移動
             (define-key elpy-mode-map (kbd "C-.") 'elpy-nav-indent-shift-right)  ;; 右にインデント1つ分移動
             (define-key elpy-mode-map (kbd "s-c s-s") 'elpy-shell-switch-to-shell)  ;; インタラクティブシェルを開く
             ;; format code automatically
             (add-hook 'elpy-mode-hook 'py-yapf-enable-on-save)))
;; use flycheck
(when (require 'flyckeck nil t)
  (remove-hook 'elpy-modules 'elpy-module-flymake)
  (add-hook 'elpy-mode-hook 'flycheck-mode))

標準ではシンタックスチェックにflymakeを使っているようなのでflycheckを使うようにしています。
yapfを使って、バッファを保存した時に自動整形を行うようにしています。

まだ導入したばかりなので、使っていくうちにやりたいことも増えて設定も増えてくるかもしれませんが、とりあえずこんなものかと。現時点でデバッガを使いこなせてないのできちんと使えるようになりたい。

参考

Elpy — Elpy 1.30.0 documentation

個人的な Python 用の Emacs の設定 | org-技術