Visual Studio CodeでのPythonのリンティング
リンティングは、Pythonソースコード内の意味的およびスタイル上の問題をハイライト表示します。これにより、微妙なプログラミングエラーやエラーにつながる可能性のあるコーディング慣行を特定し、修正するのに役立ちます。たとえば、リンティングは未定義の変数の使用、未定義の関数の呼び出し、括弧の欠落、さらには組み込み型や関数の再定義を試みるような、より微妙な問題も検出できます。リンティングは、コードがどのように実行されるかを分析してエラーを検出するのに対し、フォーマットはコードの外観を再構成するだけであるため、フォーマットとは異なります。
注: 構文エラーの検出は、Python拡張機能の言語サーバーでデフォルトで有効になっています。言語サーバーの設定方法については、言語サーバー設定を参照してください。このドキュメントでは、スタイルチェックを含む追加のコード検出のためのリンティングを有効にする方法について説明します。
リンターを選択する
VS Code Marketplaceで、お好みのリンター拡張機能を検索してください。必要に応じて、複数のリンターを同時に使用することもできます。
Microsoftは、Python用に以下のリンティング拡張機能を公開しています
コミュニティによって提供されているリンティング拡張機能
リンター | 拡張機能 |
---|---|
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 | "" |
リンティングに使用するリンターバイナリへのパスです。注: このオプションを使用すると、フォーマットが遅くなる可能性があります。 |
interpreter | [] |
Python実行可能ファイルへのパスが設定されている場合、拡張機能はそのパスを使用してリンティングサーバーとそのサブプロセスを起動します。 |
showNotifications | off |
拡張機能によって通知が表示されるタイミングを制御します。サポートされている値は、off 、always 、onError 、およびonWarning です。 |
リンティングを無効にする
リンターがインストールされている場合、デフォルトで有効になっています。拡張機能を無効にすることで、ワークスペースごとにリンターを無効にできます。
リンティングの実行
リンティングは、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)) からDeveloper: Set Log Level (開発者: ログレベルの設定) コマンドを実行します。Extension Logs (拡張機能ログ) グループから拡張機能を選択し、希望のログレベルを選択します。
重要度
リンターは、事前に定義された重要度で問題を報告します。これは、リンターのseverity
設定を使用して変更できます。サポートされている値と重要度のレベルの詳細については、各リンター拡張機能のREADMEを参照してください。
リンティングのトラブルシューティング
問題 | 原因 | 解決策 |
---|---|---|
リンター拡張機能が問題を報告しない。 | ワークスペースに対してPythonが選択されていません。 | 使用しているリンターのログを見て、使用しているPython環境へのパスを確認してください。Pythonが選択されていない場合は、コマンドパレットからPython: Select Interpreter (Python: インタープリターの選択) コマンドを実行し、ワークスペースに既存のインタープリターを選択します。 |
「You have deprecated linting or formatting settings (非推奨のリンティングまたはフォーマット設定があります)」という通知が表示される | この通知が表示される場合、VS Codeにpython.linting やpython.formatting などの設定があることを意味します。リンティングとフォーマットのサポートがツール拡張機能に移行されたため、これらの設定はPython拡張機能ではサポートされなくなりました。 |
これらの設定がVS Codeのどこで定義されているかを見つけるには、コマンドパレット (⇧⌘P (Windows, Linux Ctrl+Shift+P)) を開き、Preferences: Open User Settings (JSON) (基本設定: ユーザー設定を開く (JSON)) コマンドを実行します。ユーザー設定にない場合は、Preferences: Open Workspace Settings (JSON) (基本設定: ワークスペース設定を開く (JSON)) コマンドを実行します。その後、非推奨の設定を削除してください。 注: Remote Development拡張機能パックのいずれかの拡張機能を使用している場合は、Preferences: Open Remote Settings (JSON) (基本設定: リモート設定を開く (JSON)) コマンドを実行してリモート設定も確認できます。 |
リンター拡張機能をインストールしているのに、リンティングが機能しない。 | リンティングは、サポートされていないバージョンのPythonが使用されている、またはリンターが正しく設定されていないなど、さまざまな理由で失敗する可能性があります。リンター拡張機能の出力チャネルを確認して、リンターが失敗した理由を理解してください (コマンドパレットでOutput: Focus on Output (出力: 出力にフォーカス) コマンドを実行し、リンター拡張機能のチャネルを選択します)。 |
次のステップ
- フォーマット - Pythonコードをフォーマットする方法について学びます。
- デバッグ - Pythonをローカルおよびリモートでデバッグする方法を学びます。
- テスト - テスト環境を構成し、テストを発見、実行、デバッグします。
- 基本的な編集 - 強力な VS Code エディターについて学習します。
- Python Extension Template - お気に入りのリンターをVS Codeに統合するための拡張機能を作成します。