Pythonの静的型をするvscode拡張: Pylance, Pyright, mypyの違い

Visual Studio Code (vscode) において、静的型検査をしながらPythonの開発をするときに使う拡張機能やツールです。

Python 3の機能で型ヒントをプログラム中に書けますが、静的型検査をするには別途後述のようなツールを利用する必要があります。

TLDR: vscodePython開発をする際は、PythonとPylanceの拡張機能を入れると良さそう

Python (拡張機能の名前)

Microsoft製のPython用の拡張機能で、デバッグやJupyter Notebookの表示などの機能を提供します。

とりあえず入れておくべき拡張機能です。

Pyright

Microsoft製の静的型チェックを行うツールです。

かつては同じくPyrightという名称のvscode拡張によって静的型チェックができましたが、2020年7月現在は後述のPylanceが推奨されるようになりました。

github.com

Pylance

Microsoft製の拡張機能で、同じく静的型チェックに加えて、自動インポートや、型宣言を強制するstrictモードも搭載されていて、より高機能です

内部で型チェックのためにPyrightを使っています。Python拡張機能をインストールした後に、こちらをインストールします。

まだプレビュー版ですが、かなり便利な印象です。

また、将来的にはPython拡張機能に統合される予定だそうです。なお、OSSではありません。

marketplace.visualstudio.com

mypy

Microsoft製のツールより(たぶん)前からある静的型チェックを行うツールです。

vscodeに入れるときにMicrosoft製の拡張機能のほうが簡単に入ったので、あまり使ったことがありません。

全体的にPylanceのほうが高機能だと思うので、こちらは劣勢と思われます。メリットとしては完全オープンソースという点でしょうか。

mypy-lang.org

Pyright と mypy の違い

こちらに詳しく記載されていました。

qiita.com

まとめ

とりあえず、vscodePython開発をする際は、PythonとPylanceの拡張機能を入れると幸せになれます