0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VSCode の Flake8 拡張機能でプラグインを利用する方法

0
Posted at

こんにちは、ほうき星です。

Python を書く際、リンターとして Flake8 を使用している方は多いかと思います。

VSCode では拡張機能として Flake8 を簡単に導入できますが、Flake8 のチェック観点を追加する「プラグイン」を利用しようとすると、少し設定が必要になります。

本記事では、VSCode の Flake8 拡張機能でプラグインを利用するための手順をご紹介します。

【参考】VSCode 拡張機能の Flake8 の導入方法

こちら参考程度ですが、VSCode に以下の手順で Flake8 を導入することができます。

といっても、VSCode 拡張機能にてFlake8と検索し、インストールするだけで導入可能です。
image.png

Black フォーマッタ等と併用する場合、Flake8 と Black の仕様差異により不要な警告が出るため、以下の設定を追加することが推奨されます。

settings.json
{
    "flake8.args": [
        "--max-line-length=88",
        "--ignore=E203,W503,W504"
    ]
}

インストール後、以下のような Python コードに対して自動でチェックしてくれるようになります。

sample.py
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行ない
  • 未使用の変数がある

image.png

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>
  1. venv 環境の作成とアクティベート
    D:\python>python -m venv flake8
    
    D:\python>cd flake8
    
    D:\python\flake8>Scripts\activate
    (flake8) D:\python\flake8>
    
  2. 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
    
  3. プラグインのインストール
    ※今回はflake8-import-orderpep8-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
    
  4. venv 環境にインストールしたflake8.exeのフルパスを取得します
    ※例では Windows 環境のため以下のようなパスとなっています

    "D:\python\flake8\Scripts\flake8.exe"

  5. VSCode のsettings.jsonflake8.pathにコピーしたflake8.exeのフルパスを設定します
    settings.json
    {
        "flake8.args": [
            "--max-line-length=88",
            "--ignore=E203,W503,W504"
        ],
        "flake8.path": ["D:\\python\\flake8\\Scripts\\flake8.exe"]
    }
    
  6. 今回導入したプラグインによって、ライブラリのインポート順PEP8による命名規則違反が追加でチェックされていれば導入完了です
    image.png

さいごに

Python のリンターである、Flake8 は VSCode の拡張機能として簡単に追加することができます。
一方で、チェック観点を追加するために、プラグインを導入することはできません。

そのため本記事では「プラグインを導入した Flake8 へパスを向ける」方法をご紹介しました。
現実にはプロジェクトによって、チェック観点が異なる(=利用するプラグインが異なる)場合もあるかと思います。
その場合は VSCode の各ワークスペース毎のsettings.jsonにて、参照する Flake8 のパスを設定することで解決することができます。

本記事が誰かの Python ライフの一助になれば幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?