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