こんにちは、ほうき星です。
Python を書く際、リンターとして Flake8 を使用している方は多いかと思います。
VSCode では拡張機能として Flake8 を簡単に導入できますが、Flake8 のチェック観点を追加する「プラグイン」を利用しようとすると、少し設定が必要になります。
本記事では、VSCode の Flake8 拡張機能でプラグインを利用するための手順をご紹介します。
【参考】VSCode 拡張機能の Flake8 の導入方法
こちら参考程度ですが、VSCode に以下の手順で Flake8 を導入することができます。
といっても、VSCode 拡張機能にてFlake8と検索し、インストールするだけで導入可能です。

Black フォーマッタ等と併用する場合、Flake8 と Black の仕様差異により不要な警告が出るため、以下の設定を追加することが推奨されます。
{
"flake8.args": [
"--max-line-length=88",
"--ignore=E203,W503,W504"
]
}
インストール後、以下のような Python コードに対して自動でチェックしてくれるようになります。
import boto3
import os
def calculate_total(items):
"""合計を計算する関数"""
TotalValue = 0
for item in items:
ItemPrice = item.get("price")
TotalValue += ItemPrice
envVariable = os.environ.get("ENV_VARIABLE")
return TotalValue
上記サンプルでは、Flake8 によって以下の指摘がされています。
- インポートしたのに使用していないライブラリ
- 関数の前に空行が2行ない
- 未使用の変数がある
Flake8 のプラグインとは
Flake8 にはチェックする観点を追加するためのプラグインが存在します。
例えばflake8-import-orderはライブラリのインポート順のチェックを追加し、pep8-namingはPEP8の命名規則に従っているかのチェックを追加します。
VSCode で プラグインを導入した Flake8 を利用する方法
VSCode の Flake8 拡張機能は、内部に同梱された Flake8 を実行する仕組みになっており、この内部 Flake8 には pip install 等によるプラグイン追加を行うことができません。
そのため、プラグインを追加した Flake8 を利用するには、別途プラグインをインストールした Flake8 を用意し、 VSCode から参照するよう設定する必要があります。
具体的な手順は以下となります。
掲載しているコマンドは Windows11 及び コマンドプロンプトにて実施しています。
また、Python のバージョンは 3.12.8 となります。
Microsoft Windows [Version 10.0.26100.7840]
(c) Microsoft Corporation. All rights reserved.
D:\python>python -V
Python 3.12.8
D:\python>
- venv 環境の作成とアクティベート
D:\python>python -m venv flake8 D:\python>cd flake8 D:\python\flake8>Scripts\activate (flake8) D:\python\flake8> - flake8 のインストール
(flake8) D:\python\flake8>pip install flake8 Collecting flake8 Using cached flake8-7.3.0-py2.py3-none-any.whl.metadata (3.8 kB) ~省略~ Successfully installed flake8-7.3.0 mccabe-0.7.0 pycodestyle-2.14.0 pyflakes-3.4.0 - プラグインのインストール
※今回はflake8-import-orderとpep8-namingをインストールしました。(flake8) D:\python\flake8>pip install flake8-import-order pep8-naming Collecting flake8-import-order Using cached flake8_import_order-0.19.2-py3-none-any.whl.metadata (8.2 kB) Collecting pep8-naming Using cached pep8_naming-0.15.1-py3-none-any.whl.metadata (7.4 kB) ~省略~ Successfully installed flake8-import-order-0.19.2 pep8-naming-0.15.1 setuptools-82.0.0 - venv 環境にインストールした
flake8.exeのフルパスを取得します
※例では Windows 環境のため以下のようなパスとなっています"D:\python\flake8\Scripts\flake8.exe"
- VSCode の
settings.json中flake8.pathにコピーしたflake8.exeのフルパスを設定しますsettings.json{ "flake8.args": [ "--max-line-length=88", "--ignore=E203,W503,W504" ], "flake8.path": ["D:\\python\\flake8\\Scripts\\flake8.exe"] } - 今回導入したプラグインによって、
ライブラリのインポート順とPEP8による命名規則違反が追加でチェックされていれば導入完了です
さいごに
Python のリンターである、Flake8 は VSCode の拡張機能として簡単に追加することができます。
一方で、チェック観点を追加するために、プラグインを導入することはできません。
そのため本記事では「プラグインを導入した Flake8 へパスを向ける」方法をご紹介しました。
現実にはプロジェクトによって、チェック観点が異なる(=利用するプラグインが異なる)場合もあるかと思います。
その場合は VSCode の各ワークスペース毎のsettings.jsonにて、参照する Flake8 のパスを設定することで解決することができます。
本記事が誰かの Python ライフの一助になれば幸いです。
