EmacsでPython開発を快適に!おすすめ設定&便利パッケージ完全ガイド

プログラミング
記事内に広告が含まれています。
スポンサーリンク

はじめに

brian
brian

EmacsでPython開発を始めてみませんか?このガイドでは、Emacsのインストール方法から、Python開発に役立つパッケージの導入、快適な開発のためのカスタマイズまで、初心者にもわかりやすく解説しています。Emacsを活用して、効率的なPythonコーディングを体験してみてください!

Emacsとは?

Emacs(イーマックス)は、高度にカスタマイズ可能なテキストエディタであり、多くの開発者に愛用されています。もともとはUnix系OS向けに開発されましたが、現在ではWindowsやmacOSでも利用できます。Emacsの特徴として以下の点が挙げられます。

  • 拡張性の高さ:Emacs Lisp(Elisp)を用いて、自由に機能を追加・変更できる。
  • 多機能:単なるテキストエディタではなく、IDE(統合開発環境)、メールクライアント、RSSリーダー、さらにはゲームまで実装可能。
  • キーバインドの柔軟性:自分好みにショートカットを設定し、生産性を向上させられる。

Pythonの開発環境として使う場合も、専用のパッケージを導入すれば、補完機能やデバッグ機能などを充実させることが可能です。

Python開発にEmacsを使うメリット

Pythonの開発には、VSCodeやPyCharmといった人気のエディタ・IDEもありますが、Emacsを利用することで以下のようなメリットがあります。

  • 軽量で高速:Emacsは比較的軽量で、特にリモート環境での開発に適している。
  • 完全なキーボード操作:マウスを使わずにすべての操作をキーボードで完結できるため、効率的なコーディングが可能。
  • カスタマイズ性:自分の好みに合わせて柔軟に環境を構築できる。
  • 統合環境としての利用:Git管理、ドキュメント作成(org-mode)、タスク管理まで、Python開発に必要な周辺作業をEmacs内で完結できる。

本記事の概要

本記事では、EmacsをPythonの開発環境として利用するために必要な設定やパッケージの導入方法を詳しく解説します。具体的には以下の内容を扱います。

  • Emacsの基本設定
  • Python開発に必要なパッケージの導入
  • より快適に開発するためのカスタマイズ
  • デバッグやテスト環境の構築

これを読めば、Emacsで快適にPythonを開発するための基盤が整うはずです。それでは、Emacsの基本設定から始めましょう。

スポンサーリンク

Emacsの基本設定

Emacsのインストール方法

EmacsをPython開発環境として利用するには、まずEmacs本体をインストールする必要があります。OSごとのインストール方法を以下に紹介します。

Windowsの場合

Windows向けには、公式サイトからバイナリをダウンロードする方法と、choco(Chocolatey)やwingetを使う方法があります。

  1. 公式サイトからインストール
    Emacsの公式サイトからWindows向けのインストーラをダウンロードし、指示に従ってインストールします。
  2. Chocolateyを使う場合(PowerShellで実行)
PowerShell
choco install emacs
  1. wingetを使う場合(Windows 10/11)
PowerShell
winget install GNU.Emacs

macOSの場合

macOSでは、brew(Homebrew)を使うと簡単にインストールできます。

ShellScript
brew install emacs

GUI版(Emacs.app)をインストールしたい場合は以下のコマンドを使用します。

ShellScript
brew install --cask emacs

Linuxの場合

多くのLinuxディストリビューションでは、パッケージマネージャを使用してEmacsをインストールできます。

  • Debian系(Ubuntu, Debian など)
ShellScript
sudo apt update
sudo apt install emacs
  • RedHat系(Fedora, CentOS など)
ShellScript
sudo dnf install emacs
  • Arch Linux
ShellScript
sudo pacman -S emacs

初期設定(.emacs / init.el)

Emacsの設定ファイルは、以下のいずれかの場所に作成します。

  • ~/.emacs(古いスタイル)
  • ~/.emacs.d/init.el(推奨)

基本的な設定として、以下のような内容をinit.elに記述しておくとよいでしょう。

elisp
;; パッケージ管理を有効化
(require 'package)
(setq package-archives '(("melpa" . "https://melpa.org/packages/")
                         ("gnu" . "https://elpa.gnu.org/packages/")
                         ("org" . "https://orgmode.org/elpa/")))
(package-initialize)

;; `use-package` を使えるようにする
(unless (package-installed-p 'use-package)
  (package-refresh-contents)
  (package-install 'use-package))
(require 'use-package)

;; UIの簡易化
(menu-bar-mode -1)
(tool-bar-mode -1)
(scroll-bar-mode -1)

;; 行番号を表示
(global-display-line-numbers-mode t)

;; 括弧の対応をハイライト
(show-paren-mode 1)

この設定を入れることで、Emacsの見た目をスッキリさせ、基本的な開発に便利な機能を追加できます。

パッケージ管理(package.el、use-package など)

Emacsでは、拡張機能(パッケージ)を追加するために、以下のパッケージ管理ツールを使用します。

  • package.el(Emacs標準のパッケージ管理システム)
  • use-package(設定を簡潔に管理するためのパッケージ)

use-package は、パッケージのインストールと設定をまとめて記述できる便利なツールです。たとえば、use-package を使って company(補完機能)をインストール・設定する場合、以下のように書けます。

elisp
(use-package company
  :ensure t
  :config
  (global-company-mode))

このように設定することで、Emacs起動時にcompanyがインストールされ、グローバルに有効化されます。

スポンサーリンク

Python開発に必要なパッケージの導入

EmacsをPythonの開発環境として利用するには、いくつかの便利なパッケージを導入する必要があります。ここでは、以下の主要なパッケージを紹介し、その設定方法を解説します。

  • elpy(Python開発環境)
  • lsp-mode(LSPによるコード補完)
  • flycheck(構文チェック)
  • blacken(コードフォーマッター)

elpy(Python開発環境)

elpy は、EmacsのPython開発環境を統合的に提供するパッケージです。コード補完、インタラクティブな実行、デバッグ支援など、多くの機能が含まれています。

elpy のインストール

まず、elpy をインストールします。

elisp
(use-package elpy
  :ensure t
  :init
  (elpy-enable))

Emacsを再起動すると、elpy が有効になります。

elpy の基本設定

Pythonのインタープリタとして ipython を使用する場合は、以下の設定を追加します。

elisp
(setq python-shell-interpreter "ipython"
      python-shell-interpreter-args "-i --simple-prompt")

また、デフォルトの補完エンジンを jedi に変更する場合は、以下の設定を追加します。

elisp
(setq elpy-rpc-backend "jedi")

lsp-mode(LSPによるコード補完)

最近のEmacsでは、elpy よりも lsp-mode を使う方がパフォーマンスが良い場合があります。

lsp-mode のインストール

elisp
(use-package lsp-mode
  :ensure t
  :hook (python-mode . lsp)
  :commands lsp)

また、コード補完を強化するために company-lsp もインストールします。

elisp
(use-package company-lsp
  :ensure t
  :config
  (push 'company-lsp company-backends))

Python用のLSPサーバーをインストール

LSPを利用するためには、Python用のLSPサーバー(pylsp など)をインストールする必要があります。

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

Emacsを再起動すると、Pythonのコード補完やシンタックスハイライトが強化されます。

flycheck(構文チェック)

flycheck はリアルタイムでコードの構文をチェックするパッケージです。

flycheck のインストール

elisp
(use-package flycheck
  :ensure t
  :init (global-flycheck-mode))

デフォルトでは pylintflake8 などのツールを使ってコードをチェックします。もし flake8 を使いたい場合は、以下のコマンドでインストールしておきましょう。

ShellScript
pip install flake8

blacken(コードフォーマッター)

Pythonのコードフォーマットを自動で整えるには、blacken を使います。

blacken のインストール

elisp
(use-package blacken
  :ensure t
  :hook (python-mode . blacken-mode))

また、black をPython環境にインストールする必要があります。

ShellScript
pip install black

これにより、保存時にコードが自動的に整形されるようになります。

スポンサーリンク

快適な開発のためのカスタマイズ

EmacsをPython開発環境としてさらに快適にするために、いくつかの追加設定を行います。ここでは、以下のカスタマイズを紹介します。

  • company-mode による補完強化
  • pyvenv による仮想環境管理
  • magit でのGit連携

company-mode による補完強化

company-mode は、Emacsの補完機能を強化するパッケージです。lsp-modeelpy と組み合わせることで、より快適な補完を実現できます。

company-mode のインストール

elisp
(use-package company
  :ensure t
  :init
  (global-company-mode))

company-mode の設定

補完の応答速度や、補完リストの表示を調整することで、より快適に動作させることができます。

elisp
(setq company-idle-delay 0.1)  ;; 補完が表示されるまでの遅延時間
(setq company-minimum-prefix-length 1)  ;; 補完を開始する最小の入力文字数
(setq company-selection-wrap-around t)  ;; リストの最後で先頭に戻る

さらに、company-box を使うことで、補完候補の表示を視覚的に改善できます。

elisp
(use-package company-box
  :ensure t
  :hook (company-mode . company-box-mode))

pyvenv による仮想環境管理

Pythonでは、仮想環境(venv)を使うことで、プロジェクトごとに異なるライブラリを管理できます。Emacsでは pyvenv を使うことで、仮想環境の切り替えを簡単に行えます。

pyvenv のインストール

elisp
(use-package pyvenv
  :ensure t
  :config
  (setenv "WORKON_HOME" "~/.virtualenvs")  ;; 仮想環境のディレクトリを設定
  (pyvenv-mode 1))

仮想環境を手動で切り替えるには、以下のコマンドを実行します。

elisp
(pyvenv-activate "/path/to/venv")

また、pyvenv-workon を使うと、WORKON_HOME にある仮想環境をリストから選択できます。

elisp
(pyvenv-workon "myenv")

magit でのGit連携

Emacsでは、magit を使うことで、強力なGit管理が可能になります。

magit のインストール

elisp
(use-package magit
  :ensure t)

magit の基本操作

magit を起動するには、以下のコマンドを実行します。

elisp
M-x magit-status

すると、現在のGitリポジトリの状態が表示され、コミットやプッシュなどの操作をEmacs内で直感的に行えます。

主なショートカットキー:

コマンド説明
sステージングする
uステージングを解除
c cコミットを作成する
p pプッシュする
f fプルする

magit を活用することで、ターミナルを開かずにGit管理をEmacs内で完結できます。

スポンサーリンク

デバッグとテストの設定

EmacsでPythonの開発を効率的に行うためには、デバッグやテストの環境を整えることが重要です。ここでは、以下の設定方法を解説します。

  • dap-mode を使ったデバッグ
  • pytest を Emacs から実行する方法

dap-mode を使ったデバッグ

Pythonのデバッグには、dap-mode(Debug Adapter Protocol mode)を使用すると便利です。これにより、Emacs内でブレークポイントを設定し、コードをステップ実行することができます。

dap-mode のインストール

elisp
(use-package dap-mode
  :ensure t
  :config
  (dap-auto-configure-mode)
  (require 'dap-python))

さらに、Pythonのデバッグには debugpy というライブラリが必要です。

ShellScript
pip install debugpy

dap-mode の設定

デフォルトで dap-pythondebugpy を使用します。Pythonファイルを開いた状態で、以下のコマンドを実行してデバッグを開始できます。

elisp
M-x dap-debug

デバッグ用の設定を launch.json のような形で記述することも可能です。例えば、以下のように設定すると、特定のスクリプトをデバッグ実行できます。

elisp
(dap-register-debug-template "Python :: Run Configuration"
  (list :type "python"
        :args "-i"
        :cwd nil
        :request "launch"
        :program "main.py"
        :name "Python :: Run"))

主なショートカットキーは以下の通りです。

ショートカット説明
F5デバッグ開始
F9ブレークポイントの設定
F10ステップオーバー
F11ステップイン
Shift + F11ステップアウト
C-c C-d qデバッグの停止

この設定により、Emacs内で本格的なデバッグが可能になります。

pytest を Emacs から実行する方法

Pythonのテストフレームワークとして pytest を利用する場合、Emacsから直接テストを実行できると便利です。

pytest のインストール

まず、Python環境に pytest をインストールしておきます。

ShellScript
pip install pytest

pytest を Emacs から実行

Emacsでは compile コマンドを利用して、簡単に pytest を実行できます。以下のコマンドを実行すると、カレントディレクトリのテストが走ります。

elisp
M-x compile RET pytest

また、特定のテストファイルのみ実行したい場合は、.emacs.d/init.el に以下の関数を定義すると便利です。

elisp
(defun run-pytest ()
  "現在のバッファのファイルに対して pytest を実行する"
  (interactive)
  (compile (format "pytest %s" (buffer-file-name))))

これで、M-x run-pytest を実行すれば、開いているテストファイルのテストを自動的に実行できます。

pytest の結果を compilation-mode で表示

Emacs の compilation-mode を活用すると、エラーが発生した際に簡単にソースコードへジャンプできます。.emacs.d/init.el に以下の設定を追加すると、pytest の出力が Emacs 内で見やすくなります。

elisp
(setq compilation-scroll-output t)  ;; テスト実行中にコンパイルバッファをスクロール

これにより、pytest の実行結果がEmacs内で見やすくなり、エラー箇所にも簡単に移動できます。

スポンサーリンク

まとめと次のステップ

EmacsによるPython開発の魅力

本記事では、EmacsをPythonの開発環境として活用するための基本設定から、便利なパッケージ、デバッグやテストの設定までを紹介しました。Emacsは単なるテキストエディタではなく、高度な統合開発環境(IDE)として活用できます。

EmacsでPythonを開発するメリットを振り返ると、以下のようになります。

  • 軽量で柔軟な開発環境 を構築できる
  • カスタマイズ性が高く、自分好みに設定可能
  • 統一されたキーバインドで効率的に操作できる
  • 補完、構文チェック、デバッグ、テストを一元管理できる

Emacsの設定は一度整えれば長く使い続けることができ、自分に合った開発環境を作り上げる楽しさもあります。

さらなるカスタマイズのヒント

Emacsは無限にカスタマイズ可能なエディタです。Python開発をさらに快適にするために、以下の追加設定を試してみるのもよいでしょう。

projectile によるプロジェクト管理

projectile を導入すると、プロジェクトごとの管理が簡単になります。

elisp
(use-package projectile
  :ensure t
  :init
  (projectile-mode +1)
  :bind-keymap
  ("C-c p" . projectile-command-map))

which-key によるキーバインド補助

which-key を導入すると、Emacsのコマンドを補助表示してくれるので、初心者でも使いやすくなります。

elisp
(use-package which-key
  :ensure t
  :config
  (which-key-mode))

org-mode を活用したノート管理

Pythonの学習メモやドキュメント作成には、Emacsの org-mode が非常に便利です。コードスニペットを整理したり、タスク管理を行ったりすることもできます。

参考リンク

EmacsやPython開発に関するさらなる情報は、以下の公式ドキュメントや参考記事を参照するとよいでしょう。

brian
brian

ここまで読んでいただきありがとうございます!

UdemyのPythonコースにはオンラインで学習ができる動画コンテンツがたくさんあります。

当ブログのような文章メインの説明では足りない箇所を補えると思うので、もっと詳しく勉強したいという方はぜひチェックしてみてください!

コメント

タイトルとURLをコピーしました