Visual Studio Code での Python の Lint 処理
Lint 処理は、Python ソースコード内のセマンティックおよび文体的な問題を強調表示します。これにより、多くの場合、エラーにつながる可能性のある微妙なプログラミングエラーやコーディングプラクティスを特定して修正するのに役立ちます。たとえば、Lint 処理では、未定義の変数の使用、未定義の関数の呼び出し、括弧の欠落、さらには組み込み型や関数を再定義しようとするなどの、より微妙な問題を検出できます。Lint 処理は、コードの実行方法を分析してエラーを検出するのに対し、Formatting はコードの表示方法を再構築するだけであるため、フォーマットとは異なります。
注: 構文エラー検出は、Python 拡張機能の言語サーバーで既定で有効になっています。言語サーバーの構成方法については、言語サーバーの設定を参照してください。このドキュメントでは、文体チェックを含む追加のコード検出のために Lint 処理を有効にする方法について説明します。
リンターの選択
VS Code Marketplace で、選択したリンター拡張機能を検索します。必要に応じて、複数のリンターを同時に使用できます。
マイクロソフトは、Python 用に次のリンター拡張機能を公開しています
コミュニティが提供する Lint 処理拡張機能
リンター | 拡張機能 |
---|---|
Ruff | https://marketplace.visualstudio.com/items?itemName=charliermarsh.ruff |
mypy | https://marketplace.visualstudio.com/items?itemName=matangover.mypy |
注: 上の表または Marketplace でお好みのリンターが見つからない場合は、拡張機能を使用してサポートを追加できます。Python Extension Template を使用して、新しい Python ツールを VS Code に統合できます。
一般的な設定
サポートされている設定の詳細については、各リンター拡張機能の README を参照してください。次の設定は、ほとんどのリンター拡張機能でサポートされています
設定 | 既定 | 説明 |
---|---|---|
args | [] |
リンターに渡される引数。注: 公式にサポートされているリンターは、個々の開いているファイルで実行されます。構成がそのシナリオに適用されることを確認してください。 |
importStrategy | useBundled |
useBundled に設定すると、拡張機能には同梱されているツールのバージョンが使用されます。fromEnvironment に設定すると、選択した Python 環境から最初にロードしようとし、それ以外の場合は同梱されているバージョンにフォールバックします。 |
path | "" |
Lint 処理に使用するリンターバイナリへのパス。注: このオプションを使用すると、フォーマットが遅くなる可能性があります。 |
interpreter | [] |
Python 実行可能ファイルへのパスに設定すると、拡張機能はそれを使用して Lint 処理サーバーとそのサブプロセスを起動します。 |
showNotifications | off |
拡張機能によって通知が表示されるタイミングを制御します。サポートされている値は、off 、always 、onError 、および onWarning です。 |
Lint 処理の無効化
リンターは、インストールされている場合、既定で有効になっています。拡張機能をワークスペースごとに無効にすることで、無効にできます。
Lint 処理の実行
Lint 処理は、Python ファイルが開かれるか保存されると自動的に実行されます。
エラーと警告は、開いているファイルの [問題] パネル (⇧⌘M (Windows、Linux Ctrl+Shift+M)) に表示され、コードエディターでも強調表示されます。下線が引かれた問題の上にカーソルを合わせると、詳細が表示されます
コードアクション
一部のリンターは、報告された問題の対処に役立つコードアクションを提供する場合があります。提供されるコードアクションを確認するには、お好みのリンター拡張機能の [機能のコントリビューション] セクションを参照してください。
ログ記録
リンターのログは、ドロップダウンメニューから <linter name>
を選択すると、[出力] パネル (⇧⌘U (Windows Ctrl+Shift+U、Linux Ctrl+K Ctrl+H)) で確認できます。
リンター拡張機能のログレベルを変更するには、コマンドパレット (⇧⌘P (Windows、Linux Ctrl+Shift+P)) から [開発者: ログ レベルの設定] コマンドを実行します。[拡張機能ログ] グループから拡張機能を選択し、目的のログレベルを選択します。
重要度
リンターは、事前定義された重要度で問題を報告します。これは、リンターの severity
設定を使用して変更できます。サポートされている値と重要度レベルの詳細については、各リンター拡張機能の README を参照してください。
Lint 処理のトラブルシューティング
問題 | 原因 | 解決策 |
---|---|---|
リンター拡張機能が問題を報告しません。 | ワークスペース用に Python が選択されていません。 | 使用しているリンターのログを見て、使用している Python 環境へのパスを確認してください。Python が選択されていない場合は、コマンドパレットから [Python: インタープリターを選択] コマンドを実行し、ワークスペースの既存のインタープリターを選択します。 |
「非推奨の lint 処理またはフォーマット設定があります」という通知が表示される | この通知が表示される場合は、VS Code に python.linting や python.formatting などの設定があることを意味します。Lint 処理とフォーマットのサポートがツール拡張機能に移行されたため、これらの設定は Python 拡張機能ではサポートされなくなりました。 |
コマンドパレット (⇧⌘P (Windows、Linux Ctrl+Shift+P)) を開き、[基本設定: ユーザー設定を開く (JSON)] コマンドを実行して、これらの設定が VS Code のどこで定義されているかを確認します。ユーザー設定にない場合は、[基本設定: ワークスペース設定を開く (JSON)] コマンドを実行します。次に、非推奨の設定を削除します。 注: Remote Development extension pack の拡張機能のいずれかを使用している場合は、[基本設定: リモート設定を開く (JSON)] コマンドを実行してリモート設定を確認することもできます。 |
リンター拡張機能をインストールしても Lint 処理が機能しない。 | Lint 処理は、サポートされていないバージョンの Python が使用されている、リンターが正しく構成されていないなど、さまざまな理由で失敗する可能性があります。リンターが失敗した理由を理解するには、リンター拡張機能の出力チャネルを確認してください (コマンドパレットで [出力: 出力にフォーカス] コマンドを実行し、リンター拡張機能チャネルを選択します)。 |
次のステップ
- フォーマット - Python コードをフォーマットする方法について説明します。
- デバッグ - ローカルとリモートの両方で Python をデバッグする方法について説明します。
- テスト - テスト環境を構成し、テストを検出、実行、およびデバッグします。
- 基本的な編集 - 強力な VS Code エディターについて説明します。
- Python Extension Template - お気に入りのリンターを VS Code に統合する拡張機能を作成します。