🔥

VS Codeでpylanceがクラッシュする場合の対策

2024/04/30に公開

事象

VS Codeでpythonを実行すると以下のエラーが発生するようになった。

Pylance has crashed. Would you like to try using a Node.js executable to run the language server?

調べたところ以下のissueがヒットした。
https://github.com/microsoft/pylance-release/issues/5799
上記例ではディレクトリ内に巨大なデータセットが存在する場合にこのエラーが発生するよう。
私の環境では100GB以上のデータセットが存在する外部SSDをdockerコンテナ内でマウントして扱っていたので同様の理由と思われる。

対策

issue内にあるように対策としては以下のどちらかを実行すると良いらしい。

  • pyright[1]の設定で解析対象のフォルダを限定する
  • pylanceのメモリ制限を緩和するためのNode.jsを指定する

試しに前者のpyrightの設定をしたところエラーが解消した。pyproject.tomlがある場合は以下のようにinclude, excludeを自分のディレクトリ構成に合わせて記述すればいい。

# in pyproject.toml
[tool.pyright]
include = ["src"]  # 対象とするフォルダ
exclude = []   # 除外するフォルダ

私の場合、pythonファイルはすべてsrc配下においているためincludeを指定するだけでokだった。
特定のフォルダを除外したい場合はexcludeでフォルダを指定すれば良い。
https://github.com/microsoft/pyright/blob/main/docs/configuration.md#sample-pyprojecttoml-file

参考

[1] https://github.com/microsoft/pyright
静的型チェッカーツールであるpyrightをVSCode用の拡張機能として提供しているのがPylance。そのためpyrightの設定を変更する必要がある。

Discussion