🐍

Python jedi で ImportError: cannot import name 'traverse_parents' の解決

2023/01/31に公開

python-language-server 入れたがタイトルのエラーが出て動かずつらい..

原因

古い jedi が入っているときに python-language-server で新しい jedi がインストールされるときに生じます.

https://github.com/davidhalter/jedi/issues/1625

ファイル構成が変わったが, pip install -U で upgrade install でも common の古いほうのファイル(フォルダ)が残っているため, 削除されずにおかしくなっています.

解決方法

一度 jedi アップデートしてしまうと, pip install -U でも pip uninstall でも common フォルダが残ってしまう(古い方のファイル構成を知らないため, common フォルダを消してくれない)ので,

site-packages/jedi のフォルダを削除してから pip install する.

TODO

  • pip で完全 clean install する方法を探す. pip install jedi --force-reinstall ではダメだった

Discussion