Pylance: VS Codeにおいて最も優れたPython拡張機能

 
0
このエントリーをはてなブックマークに追加
Daichi Takayama
Daichi Takayama (高山 大地)

以下の文章はDimitris Poulopoulosさんの許可を得てこちらの記事を翻訳したものです:

https://towardsdatascience.com/pylance-the-best-python-extension-for-vs-code-ae299f35548c

Microsoft Python Language Serverの将来に注目し、使用すべき理由

Visual Studio Codeは、最高のオープンソースコードエディタの一つあり、Pythonもこの環境内で高い優先順位を占めています。対応するMicrosoftの拡張機能は、「 Python言語に対する豊富なサポート、IntelliSense(インテリセンス)、リンティング、デバッグ、コードナビゲーション、コードフォーマット、コードリファクタリング、テストエクスプローラー、スニペット、Jupyter Notebookのサポートなど、さまざまな機能を含み」ます。

しかし、このgoodを超える、betterもあります。Microsoftはさらに新しく、高速で、多機能を備えたPython言語サーバー、Pylanceを開発しました。Pylanceは、モンティ・パイソンランスロット卿から名前を取り、既存のPython拡張機能を基にさらに機能を追加し、拡張しています。さらに、VS Codeの12月アップデートを通じて、PylanceはPython開発体験を一層向上させる新機能を提供するようになりました。

この記事では、Pylanceの基本と、その機能全体をどのように今すぐに活用できるかについて詳しく説明します。そして、2020年12月のアップデートで導入されたバージョンについても触れます。

Pylanceとは

Pylanceは、Microsoftが新たに開発したPython言語用のサーバーです。Visual Studio Code内でのPython開発を、迅速かつ豊富な機能でサポートします。これは、基本となるPython拡張機能に基づいているものの、それ以上の多彩な機能を加えています。MicrosoftのVS Code Pythonチームが数ヶ月をかけて築き上げてきた成果を見てみましょう。

Pythonスタブファイル

Pylanceは型スタブファイル(.pyiファイル)と遅延型推論を駆使し、効率的な開発環境を実現します。ですが、スタブファイルとは、具体的には何なのでしょうか?

スタブファイルは、Pythonモジュールに型ヒント情報を提供するために利用されます。公式の詳細は、PEP-484のスタブファイルセクションに記載されています。たとえば、my_function.pyモジュールにある以下のPython関数を見てみましょう:

def add(a, b):
   return a + b

型ヒントを加えるため、新しくmy_function.pyiというスタブファイルを作成することができます:

def add(a: int, b: int) -> int: ...

注意:スタブファイルにおける関数定義の末尾の...は、その構文における必須の部分です。

とはいえ、このようにPythonモジュール内部で直接型ヒントを記述することも可能です:

def add(a: int, b: int) -> int:
   return a + b

では、なぜわざわざスタブファイルを使うのでしょうか?その理由はいくつかあります。例えば、.pyファイルを古いバージョンのPythonとの互換性を保つため、または既存のコードベースに型ヒントを導入したいがソースコードを大きく変更したくない場合などです。

IntelliSenseをさらに強化

Pylanceに話を戻すと、スタブファイルを利用することで、充実した型情報が提供され、PythonのIntelliSense機能が大幅に強化され、コードの記述速度が向上します。また、人気のあるモジュール用のスタブが予め用意されており、すぐに使用できるようになっています。内蔵されたスタブライブラリは、正確な型検査と素早い自動補完を実現します。

しかし、これだけがPylanceの全てではありません。むしろ、これはほんの入り口に過ぎません。

機能紹介

Pylanceの最大の魅力はその高速性にありますが、この拡張機能を欠かせないものにしている様々な機能も存在します。

  • 型情報: 関数の上にマウスカーソルを置くだけで、その関数の型定義を確認できるようになりました。

型情報

  • 自動インポート: インストール済みのライブラリや標準ライブラリから、モジュールを自動的にインポートする提案が可能になりました。これはPython開発者から長らく強く望まれていた機能であり、遂に実現しました。

自動インポート

  • 型チェック: 関数実行前に引数が適切な型であるかを検証できるようになりました。これを有効化するには設定を通じて python.analysis.typeCheckingModebasic または strict に設定する必要があります。

型チェック

新機能

2020年12月のVisual Studio Code更新により、Pylanceにはいくつかの新機能が導入されました。特に、コード抽出機能とPylance Insidersプログラムは最も注目すべきものです。

  • コード抽出: これにより、メソッドや変数を一クリックで抽出することができるようになりました。

コード抽出

  • Pylance Insiders: Pylanceには専用のユーザーグループであるPylance Insidersプログラムが設けられており、新しい言語サーバーの機能や改善に早期にアクセスできます。Insidersを有効にするには、"pylance.insidersChannel": "daily" を設定します。

まとめ

PylanceはVS Code用Python言語サーバーの将来を担っているようです。まだプレビュー版ですが、早速使い始めることを強く推奨します。ほとんど毎日のように新しい機能や改良が追加されており、それによって開発の効率が大きく向上し、より良い開発体験が得られるでしょう。

新しいVS Codeのアップデートには、Pylanceだけでなく、ネイティブノートブックでのIpywidgetサポートなど、多数の改良点や新機能が含まれています。より詳細な情報は、変更履歴で確認できます。

info-outline

お知らせ

K.DEVは株式会社KDOTにより運営されています。記事の内容や会社でのITに関わる一般的なご相談に専門の社員がお答えしております。ぜひお気軽にご連絡ください。