291
242

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[Python]PylanceのVS Code拡張機能をさっそく使ってみた。

Posted at

VS Codeなどで使えるPylanceという拡張機能がリリースされていたので早速使ってみました。

参考 : 型ヒントでPython開発を加速 ~Microsoft、VS Code向けの拡張機能「Pylance」を発表

(大雑把に)どんな拡張機能?

  • マイクロソフト製のPythonの拡張機能です。
  • Python拡張機能に入っているようなPythonの入力補完周りが有効になります。これはまあ大半のVS Code使ってPythonのコード書いている方はPythonの拡張機能入れていらっしゃるでしょうからそこまでは大きく変わりません。
  • 以前書いたPythonの型チェック用のPyrightと同じように、コードを書きつつ型のミスや補完が効きづらい箇所で型アノテーションをすることで補完が効くようになってくれます(内部でPyrightが使われています)。
  • importが足りない箇所のエラーのチェックと、足りないimportをコードに挿入してくれる選択肢を出してくれます。
  • この記事を書いている2020-07-02時点ではまだPreview版です。

インストール方法

VS Codeの拡張機能のページでpylanceなどと検索してインストールするだけです。

image.png

ただし、私の場合はPyrightの拡張機能を事前に入れたままだったのですが、競合したのかPylanceをインストールしたらエラーが出るようになりました。Pyrightの拡張機能を無効化した後にVS Codeを再起動したらエラーが無くなりました。

型チェックを有効化する

デフォルトだと型チェックの機能が無効になっています。有効化するにはVS Codeの設定画面を開いて、「python.analysis.typeCheckingMode」を検索して、設定をbasicもしくはstrictに切り替えます。

image.png

basicは型アノテーションがしてある箇所で正しいかどうかがチェックされるといった具合の少し緩い感じのチェックのようです。

strictは型アノテーションなどがしていない箇所自体もエラーになったりするようです。最初からstrictであれば問題ありませんが、途中から型アノテーションをはじめてstrict設定をすると既存コードでエラーがたくさん出てきてちょっと辛い感じではあります:sweat:

importエラー時に該当するimportを挿入する

Pyrightなどに無かった?機能として、Pythonコードでimportをし忘れていたといったときに、importをしてくれる機能がPylanceに追加になっています。

この機能、Pythonではない他の言語を使って仕事をしていた頃似たようなものを結構愛用していたので、使えるようになって嬉しい感じです!

importが足りないケースなどでは以下のようにVS Code上で赤い下線によるエラー表示になります。

image.png

その状態でカーソル位置をエラーになっている部分(画像ではnp)に合わせると、電球らしきアイコンが出てきます。

image.png

この状態でCtrl + .を押すか、電球アイコンをクリックすると挿入するimportのリストを表示してくれます。numpyとかとやらずにnpとかでもちゃっと認識してくれるのは賢い・・・!

image.png

該当のものを選択すると、import文が挿入されます。

image.png

また、この機能はマウスオーバー時に表示されるポップアップ上の「Quick Fix...」をクリックしても同様の機能が使えました。

image.png

291
242
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
291
242

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?