はじめに

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をPythonの開発環境として利用するために必要な設定やパッケージの導入方法を詳しく解説します。具体的には以下の内容を扱います。
これを読めば、Emacsで快適にPythonを開発するための基盤が整うはずです。それでは、Emacsの基本設定から始めましょう。
Emacsの基本設定

Emacsのインストール方法
EmacsをPython開発環境として利用するには、まずEmacs本体をインストールする必要があります。OSごとのインストール方法を以下に紹介します。
Windowsの場合
Windows向けには、公式サイトからバイナリをダウンロードする方法と、choco(Chocolatey)やwingetを使う方法があります。
- 公式サイトからインストール
Emacsの公式サイトからWindows向けのインストーラをダウンロードし、指示に従ってインストールします。 - Chocolateyを使う場合(PowerShellで実行)
choco install emacs- wingetを使う場合(Windows 10/11)
winget install GNU.EmacsmacOSの場合
macOSでは、brew(Homebrew)を使うと簡単にインストールできます。
brew install emacsGUI版(Emacs.app)をインストールしたい場合は以下のコマンドを使用します。
brew install --cask emacsLinuxの場合
多くのLinuxディストリビューションでは、パッケージマネージャを使用してEmacsをインストールできます。
- Debian系(Ubuntu, Debian など)
sudo apt update
sudo apt install emacs- RedHat系(Fedora, CentOS など)
sudo dnf install emacs- Arch Linux
sudo pacman -S emacs初期設定(.emacs / init.el)
Emacsの設定ファイルは、以下のいずれかの場所に作成します。
~/.emacs(古いスタイル)~/.emacs.d/init.el(推奨)
基本的な設定として、以下のような内容をinit.elに記述しておくとよいでしょう。
;; パッケージ管理を有効化
(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(補完機能)をインストール・設定する場合、以下のように書けます。
(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 をインストールします。
(use-package elpy
:ensure t
:init
(elpy-enable))Emacsを再起動すると、elpy が有効になります。
elpy の基本設定
Pythonのインタープリタとして ipython を使用する場合は、以下の設定を追加します。
(setq python-shell-interpreter "ipython"
python-shell-interpreter-args "-i --simple-prompt")また、デフォルトの補完エンジンを jedi に変更する場合は、以下の設定を追加します。
(setq elpy-rpc-backend "jedi")lsp-mode(LSPによるコード補完)
最近のEmacsでは、elpy よりも lsp-mode を使う方がパフォーマンスが良い場合があります。
lsp-mode のインストール
(use-package lsp-mode
:ensure t
:hook (python-mode . lsp)
:commands lsp)また、コード補完を強化するために company-lsp もインストールします。
(use-package company-lsp
:ensure t
:config
(push 'company-lsp company-backends))Python用のLSPサーバーをインストール
LSPを利用するためには、Python用のLSPサーバー(pylsp など)をインストールする必要があります。
pip install 'python-lsp-server[all]'Emacsを再起動すると、Pythonのコード補完やシンタックスハイライトが強化されます。
flycheck(構文チェック)
flycheck はリアルタイムでコードの構文をチェックするパッケージです。
flycheck のインストール
(use-package flycheck
:ensure t
:init (global-flycheck-mode))デフォルトでは pylint や flake8 などのツールを使ってコードをチェックします。もし flake8 を使いたい場合は、以下のコマンドでインストールしておきましょう。
pip install flake8blacken(コードフォーマッター)
Pythonのコードフォーマットを自動で整えるには、blacken を使います。
blacken のインストール
(use-package blacken
:ensure t
:hook (python-mode . blacken-mode))また、black をPython環境にインストールする必要があります。
pip install blackこれにより、保存時にコードが自動的に整形されるようになります。
快適な開発のためのカスタマイズ

EmacsをPython開発環境としてさらに快適にするために、いくつかの追加設定を行います。ここでは、以下のカスタマイズを紹介します。
company-modeによる補完強化pyvenvによる仮想環境管理magitでのGit連携
company-mode による補完強化
company-mode は、Emacsの補完機能を強化するパッケージです。lsp-mode や elpy と組み合わせることで、より快適な補完を実現できます。
company-mode のインストール
(use-package company
:ensure t
:init
(global-company-mode))company-mode の設定
補完の応答速度や、補完リストの表示を調整することで、より快適に動作させることができます。
(setq company-idle-delay 0.1) ;; 補完が表示されるまでの遅延時間
(setq company-minimum-prefix-length 1) ;; 補完を開始する最小の入力文字数
(setq company-selection-wrap-around t) ;; リストの最後で先頭に戻るさらに、company-box を使うことで、補完候補の表示を視覚的に改善できます。
(use-package company-box
:ensure t
:hook (company-mode . company-box-mode))pyvenv による仮想環境管理
Pythonでは、仮想環境(venv)を使うことで、プロジェクトごとに異なるライブラリを管理できます。Emacsでは pyvenv を使うことで、仮想環境の切り替えを簡単に行えます。
pyvenv のインストール
(use-package pyvenv
:ensure t
:config
(setenv "WORKON_HOME" "~/.virtualenvs") ;; 仮想環境のディレクトリを設定
(pyvenv-mode 1))仮想環境を手動で切り替えるには、以下のコマンドを実行します。
(pyvenv-activate "/path/to/venv")また、pyvenv-workon を使うと、WORKON_HOME にある仮想環境をリストから選択できます。
(pyvenv-workon "myenv")magit でのGit連携
Emacsでは、magit を使うことで、強力なGit管理が可能になります。
magit のインストール
(use-package magit
:ensure t)magit の基本操作
magit を起動するには、以下のコマンドを実行します。
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 のインストール
(use-package dap-mode
:ensure t
:config
(dap-auto-configure-mode)
(require 'dap-python))さらに、Pythonのデバッグには debugpy というライブラリが必要です。
pip install debugpydap-mode の設定
デフォルトで dap-python は debugpy を使用します。Pythonファイルを開いた状態で、以下のコマンドを実行してデバッグを開始できます。
M-x dap-debugデバッグ用の設定を launch.json のような形で記述することも可能です。例えば、以下のように設定すると、特定のスクリプトをデバッグ実行できます。
(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 をインストールしておきます。
pip install pytestpytest を Emacs から実行
Emacsでは compile コマンドを利用して、簡単に pytest を実行できます。以下のコマンドを実行すると、カレントディレクトリのテストが走ります。
M-x compile RET pytestまた、特定のテストファイルのみ実行したい場合は、.emacs.d/init.el に以下の関数を定義すると便利です。
(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 内で見やすくなります。
(setq compilation-scroll-output t) ;; テスト実行中にコンパイルバッファをスクロールこれにより、pytest の実行結果がEmacs内で見やすくなり、エラー箇所にも簡単に移動できます。
まとめと次のステップ

EmacsによるPython開発の魅力
本記事では、EmacsをPythonの開発環境として活用するための基本設定から、便利なパッケージ、デバッグやテストの設定までを紹介しました。Emacsは単なるテキストエディタではなく、高度な統合開発環境(IDE)として活用できます。
EmacsでPythonを開発するメリットを振り返ると、以下のようになります。
Emacsの設定は一度整えれば長く使い続けることができ、自分に合った開発環境を作り上げる楽しさもあります。
さらなるカスタマイズのヒント
Emacsは無限にカスタマイズ可能なエディタです。Python開発をさらに快適にするために、以下の追加設定を試してみるのもよいでしょう。
projectile によるプロジェクト管理
projectile を導入すると、プロジェクトごとの管理が簡単になります。
(use-package projectile
:ensure t
:init
(projectile-mode +1)
:bind-keymap
("C-c p" . projectile-command-map))which-key によるキーバインド補助
which-key を導入すると、Emacsのコマンドを補助表示してくれるので、初心者でも使いやすくなります。
(use-package which-key
:ensure t
:config
(which-key-mode))org-mode を活用したノート管理
Pythonの学習メモやドキュメント作成には、Emacsの org-mode が非常に便利です。コードスニペットを整理したり、タスク管理を行ったりすることもできます。
参考リンク
EmacsやPython開発に関するさらなる情報は、以下の公式ドキュメントや参考記事を参照するとよいでしょう。

ここまで読んでいただきありがとうございます!
UdemyのPythonコースにはオンラインで学習ができる動画コンテンツがたくさんあります。
当ブログのような文章メインの説明では足りない箇所を補えると思うので、もっと詳しく勉強したいという方はぜひチェックしてみてください!


コメント