MRが楽しい

MRやVRについて学習したことを書き残す

VisualStudioCodeでPython開発支援のPylanceを利用する

本日は VSCode の環境構築枠です。
VisualStudioCode で Python 開発支援の Pylance を利用する手順を記事にします。
f:id:bluebirdofoz:20200712030025j:plain

Pylanceとは

Python のコーディング作業を支援するための VisualStudioCode の拡張機能です。
marketplace.visualstudio.com

入力補完や必要なモジュールの自動インポートなど、Python 開発で便利な様々な機能を提供します。
2020/07/11現在、Pylance は Preview 版となっています。

Pylanceのインストール

Visual Studio Code を起動し、[Extensions]ボタンをクリックして[Pylance]で検索を行います。
トップに表示される[Pylance]を開きます
f:id:bluebirdofoz:20200712030045j:plain

Pylance のページが開いたら[Install]をクリックしてインストールを行います。
f:id:bluebirdofoz:20200712030055j:plain

これでインストールは完了です。

Pylanceの利用手順

拡張子が py の Python スクリプトを開くと、自動的に Pylance が利用できます。
f:id:bluebirdofoz:20200712030107j:plain

設定項目

Pylance では設定を変更することで機能をカスタマイズすることができます。

一例として、デフォルトで無効化されている Pylance の型チェック機能を有効化してみます。
以下の手順で型チェックを有効化できます。

1.[Manage]アイコンをクリックして[Settings]を選択します。
f:id:bluebirdofoz:20200712030116j:plain

2.[Settings]が開いたら[Extensions] -> [Pylance Configure...] を開きます。
f:id:bluebirdofoz:20200712030125j:plain

3.[Type Checking Mode]の設定を[off]から[basic]または[strict]に変更すると、型チェックが有効化されます。
f:id:bluebirdofoz:20200712030135j:plain

[basic]は型のアノテーションが設定している箇所のチェックのみを行います。
[strict]はより厳しい型チェックを行い、型のアノテーションを設定していない箇所もエラーを返します。
詳細は後述のマニュアルを参照ください。

Pylanceの概要(日本語翻訳)

以下のページを翻訳したものを以下に記述します。
marketplace.visualstudio.com

高速で豊富なPython言語サポート

Pylance は Visual Studio CodePython と連携して機能する言語サポートを提供する拡張機能です。
Pylance は内部では Pyright を使用しています。Pyright はMicrosoftの静的型チェックツールです。
Pyright を使うことで、Pylance は Python を豊富な型情報で強化し、優れたコードをより速く作成できるようになります。

Pylance の由来はモンティパイソンのランスロットへの小さな賛辞です。

クイックスタート

1.マーケットプレイスからPylance拡張機能をインストールします。
2.Python(.py)ファイルを開くと、Pylance拡張機能がアクティブになります。

特徴

Pylance は Python 3 に素晴らしい機能を提供します。

・関数やクラスに対する説明文(Docstrings)
・タイプ情報付きのシグネチャのヘルプ
・パラメータの提案
・コード補完
・自動インポート(およびインポートコードアクションの追加と削除)
・コードのエラーと警告(診断)の入力時のレポート
・コードの概要
・コードナビゲーション
・コードレンズ(リファレンス/実装)
・型チェックモード
・ネイティブマルチルートワークスペースのサポート
・IntelliCode の互換性
・Jupyter Notebooks の互換性

最新リリースの変更ログを参照してください。
Changelog
https://github.com/microsoft/pylance-release/blob/master/CHANGELOG.md

設定とカスタマイズ

PylanceはPython言語サポートをカスタマイズする機能をユーザーに提供します。
これらの設定はワークスペースの settings.json ファイルに配置したり、設定エディターのUIで編集できます。

python.analysis.typeCheckingMode

実行される型チェックの分析レベルを指定します。
・デフォルト: off
・利用可能な値:

off:型チェックは行われません。未解決のインポート/変数診断が作成されます。
basic:型チェックに関連しないルール(off時のチェックルール)と基本的な型チェックを行います。
strict:エラーに関する最も厳重な型チェックを実施します。off時のチェックルールとbasic時のチェックルールも行います。
python.analysis.diagnosticMode

コードを分析して問題を報告する言語サーバーに、どのファイルを指定できるか設定するために使用されます。
・デフォルト:openFilesOnly
利用可能な値:

workspace
openFilesOnly
python.analysis.stubPaths

ユーザーがカスタムタイプのスタブを含むディレクトリへのパスを指定できるか設定するために使用されます。
各パッケージの型スタブファイルは、独自のサブディレクトリにあることが望ましいです。
・デフォルト値: ./typings

python.analysis.autoSearchPaths

事前定義された名前(srcなど)に基づいて検索パスを自動的に追加するために使用されます。
・デフォルト:true
・利用可能な値:

true
false
python.analysis.extraPaths

インポート解決のための追加の検索パスを指定するために使用されます。
これにより、古い python.autoComplete.extraPaths 設定は置き換えられます。
・デフォルト値:空の配列

python.analysis.diagnosticSeverityOverrides

ユーザーが必要に応じて、個々の診断の重大度レベルを上書きするために使用されます
許容される重大度の値:

error(赤い波線)
warning(黄色の波線)
information(青い波線)
none(ルールを無効にします)

キーとして使用できるルールは以下を参照してください。
github.com

例:

{
    "python.analysis.diagnosticSeverityOverrides:" { 
        "reportUnboundVariable" : "information", 
        "reportImplicitStringConcatenation" : "warning" 
    }
} 
python.analysis.useLibraryCodeForTypes

タイプスタブが見つからない場合、パッケージのソースコードを解析するために使用されます。
・デフォルト:true
・利用可能な値:

true
false

貢献する

Pylanceは Microsoft の静的型チェックツールであるPyrightを利用して Python に高性能の言語サポートを提供します。

コードの貢献は Pyright リポジトリ経由で歓迎されます。
始め方は Contributing の手順を参照してください。
github.com

フィードバック

github.com