lsp-pyrgihtを使ってpyrgihtを起動している。このpyrightが、poetryやpyenv-virtualenvで分離された環境のライブラリを読めるようにしたい。

lsp-pyright-venv-pathという変数があるので、これに、virtualenvへのpathを設定すれば良い。 例えば~/.pyenv/versions/myversionなど。この値は、

  • pyenv prefix
  • poetry env list --full-path

などで知ることができる。

毎回、手で設定するわけにもいかないので

((python-mode . ((lsp-pyright-venv-path . "/Users/hotoku/.pyenv/versions/myversion"))))

という内容の.dir-locals.elをプロジェクトルートに置いておく。