My開発メモ

emacsでpython開発環境をつくる(Ubuntu 20.04)

以下のサイトの指示どおりやってみた。

EmacsでPythonを書く設定2022

Python-mode のインストール

これは、MELPA からインストール。

eglot のインストール

これも MELPA からインストール。

Python用の language server をインストール

$ pip install 'python-lsp-server[all]'

(参考) https://github.com/python-lsp/python-lsp-server

プラグインのインストール

$ pip3 install pyls-isort
$ pip3 install python-lsp-black

参考サイトの指示どおり、autopep8 と yapf はアンインストールした。

$ pip3 uninstall autopep8
$ pip3 uninstall yapf

init.el に書く

init.el に以下を書いた。これは参考サイトのとおりである。

~/.emacs.d/init.el

;; Python
(setq auto-mode-alist (cons '("\\.py$" . python-mode) auto-mode-alist))
(setq interpreter-mode-alist (cons '("python" . python-mode)
                                   interpreter-mode-alist))

(require 'eglot)

;; Python-mode起動時にeglotを有効化
(add-hook 'python-mode-hook 'eglot-ensure)

;; 保存時に自動整形 (eglot)
(add-hook 'python-mode-hook
          #'(lambda ()
              (add-hook 'before-save-hook
                        'eglot-format-buffer nil t)))

;; flycheckはOFFにして、flymakeを使うようにしている。
;; 以下のパッケージを使うと、メッセージがカーソル位置に出現するので、
;; エコーエリアと干渉しないのが良い。お好みで。
;; (with-eval-after-load "flymake"
;;   (require 'flymake-diagnostic-at-point)
;;   (add-hook 'flymake-mode-hook #'flymake-diagnostic-at-point-mode))

内容がよくわからないエラーが出た

Error in post-command-hook (#[0 "\303\304\301\242\305#\210\300\306!\205\0r\211q\210
?\205\0\307\310\311 \")\207" [#<buffer draw_tree.py> (#0) eglot--managed-mode remove-hook post-command-hook nil buffer-live-p apply eglot--connect eglot--guess-contact] 4]): (error "None of ’pylsp, pyls, pyright-langserver’ are valid executables")

Unable to load color "color-137"

解決した (2022.07.19 追記)

上記のよくわからないエラーは、以下のパッケージをインストールすることで でなくなった。

M-x package-install blacken

init.el に以下を追記。

(add-hook 'python-mode-hook 'blacken-mode)

blackは入ってた。

$ pip3 list | grep black
black                        22.6.0
python-lsp-black             1.2.1

カテゴリー: Emacs, memo, Python, Python3, Ubuntu

タグ:

カウント: 190