3
4

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 1 year has passed since last update.

Visual Studio CodeでPythonのIntelliSenseが遅い

Last updated at Posted at 2023-09-28

IntelliSenseが遅すぎる...

通常、pythonのソースコードを開くと、コードがハイライトされ、F12で定義参照などに行くことができる。しかし、全然コードがハイライトされず、F12を押しても定義に飛べない!これの解決に苦労したので、備忘録として残しておく。

考えられる原因

便宜上vscodeで開いているフォルダをrootとする。機械学習を行っていたのでroot/dataフォルダの配下に何十万というファイルが存在していた。原因は明らかにこいつだろと思っていたので、このdataフォルダを除外する方法はないかと模索した。

python.analysis.excludeに設定の追加

はじめにpython.analysis.excludeにdataフォルダを追加してみた。しかし、効果は得られなかった。ちなみに,python.analysis.excludeとは、ショートカットキー「Ctrl+,」でsettingsを開き、検索バーに「python exclude」と入力して出てくる設定項目である。image.png

pyrightconfig.jsonの追加

いろいろ調べるとPythonのIntelisenseは拡張機能であるPylanceが関係しているようである。Pylanceのログがないかなと探していたらログを見つけることができた。
Vscode画面のパネルのタブをOUTPUTを選択し、その右側にあるプルダウンリストをPython Language Serverを選択することで、Pylanceのログを確認することができた。
image.png
そこで、ログを見てみると気になるErrorが表示がされていた。

2023-09-28 13:29:04.631 [info] [Error - 1:29:04 PM] (1527144) Enumeration of workspace source files is taking longer than 10 seconds.
This may be because:
* You have opened your home directory or entire hard drive as a workspace
* Your workspace contains a very large number of directories and files
* Your workspace contains a symlink to a directory with many files
* Your workspace is remote, and file enumeration is slow
To reduce this time, open a workspace directory with fewer files or add a pyrightconfig.json configuration file with an "exclude" section to exclude subdirectories from your workspace. For more details, refer to https://github.com/microsoft/pyright/blob/main/docs/configuration.md.

なんか時間かかってるからエラーがでているらしい。しかも、ファイルがたくさんあることが原因の可能性があるとあった。pyrightconfig.jsonを編集することで、dataを除外できるてきな雰囲気があるので、早速https://github.com/microsoft/pyright/blob/main/docs/configuration.mdを参照してみた。すると、ルートフォルダの下にpyrightconfig.jsonが生成される的なことが書いてあった。しかし、rootフォルダを確認してみても生成はされていない。そこで、「Ctrl+N」で新しいファイルを作成し、pyrightconfig.jsonという名前にしておいてみた。

root
  ├data
  ├pyrightconfig.json

ファイルの中身は以下のようにした。

{
    "exclude":"data"
}

すると、上ででていたエラーが解消され、すぐにIntelisenseが効くようになった。
ちなみに、ログにも

2023-09-28 13:38:44.416 [info] [Info  - 1:38:44 PM] (1529385) Loading configuration file at /[パス]/root/pyrightconfig.json

のように、読み込んでいる雰囲気の出力がされていた。

結論

pyrightconfig.jsonでexcludeを指定すれば、余分なファイルを分析させずにすむ。

3
4
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
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?