Masayan tech blog.

  1. ブログ記事一覧>
  2. VSCodeのPythonリンターはPylanceを使うべし

VSCodeのPythonリンターはPylanceを使うべし

公開日

本記事を読むとわかるようになること

  • VSCodeでPythonの開発を行う際のリンターはどれを使用すればいいのか ※2024/2/3時点
  • リンターではどのようなことができ、どのようなメリットがあるのか
  • リンターのおすすめ設定と設定方法

リンターとは

Pythonのソースコードを静的に解析し、エラー、バグ、スタイルの問題、およびサスペクトな構造を検出するツールのこと。リンターはコードの品質を向上させ、バグを早期に発見するのに役立つ

どのリンターを使用すればいいのか

VSCodeでPythonの開発を行う際にリンターについて調べると、よく出てくるのが、Pyright、mypy、Pylance。結論から言うと、今使うべきはPylance

Pylanceの特徴

  • Microsoft製の言語サーバー
  • Pyrightは型チェックのみ、Pylanceは型チェックに加えて、コード補完、自動インポート、シンタックスハイライトなど、Pythonの開発体験を向上させる包括的な機能を提供
  • Pylanceでは、型チェック機能として内部でPyrightを使用している(Pyrightをpipで追加インストールする必要はない)

VSCodeへのインストール方法

以下のPythonという拡張機能をインストールする

https://marketplace.visualstudio.com/items?itemName=ms-python.python

おすすめの設定

  • 上記の拡張機能をインストールするだけでも十分にリンターとしての機能を発揮するが、細かい設定をチューニングすることでさらに使いやすくできる
  • 設定はsettings.jsonに追加する

チェックレベル

off:型チェックは行われない
basic:基本的な型チェックを行う
strict:エラーに関する最も厳重な型チェックを実施する

{
  "python.analysis.typeCheckingMode": "basic",
}

未使用項目をエラーにする

未使用のインポート文

{
  "python.analysis.diagnosticSeverityOverrides": {
    "reportUnusedImport": "error",
  },
}

未使用のクラス

{
  "python.analysis.diagnosticSeverityOverrides": {
    "reportUnusedClass": "error",
  },
}

未使用の関数

{
  "python.analysis.diagnosticSeverityOverrides": {
    "reportUnusedFunction": "error",
  },
}

関数宣言時にカッコ()を自動挿入

{
  "python.analysis.completeFunctionParens":true,
}

型ヒントを半透明で表示しダブルクリックで挿入

変数

{
  "python.analysis.inlayHints.variableTypes":true,
}

関数の返り値

{
  "python.analysis.inlayHints.functionReturnTypes":true,
}

まとめ

いかがでしたでしょうか。本記事では、VSCodeでPythonの開発を行う際のリンターはどれを使用すればいいのか、リンターではどのようなことができ、どのようなメリットがあるのか、リンターのおすすめ設定と設定方法について紹介しました。ぜひ参考にして快適なPython開発ライフを送ってください