Open dhilst opened 4 months ago
I guess lsp-pyright install its own version of pyright, but couldn't found by looking into the elisp code
It does not. The user must supply it.
Your problem is that lsp-pyright looks for pyright in the general $PATH, not with your environment active. That is it looks for your system pythons pyright.
I'm unsure as to the best solution to your problem, but it is likely either adding your poetries environment to the $PATH, or installing pyright into the system, itself, not in a venv. (though it would be possible to modify lsp-pyright to use your poetry version of pyright, I don't think it is the intended usecase)
I thought the same — that lsp-pyright
would install all its dependencies automatically. At least, that would’ve made sense, because that’s what other packages like anaconda-mode
or dap-mode
typically do — it’s common for packages to handle dependencies themselves. A lot of them work that way. I have to admit, I spent a lot of time trying to figure out why things weren’t working before stumbling across this issue at GitHub.
The most frustrating part, in my opinion, is that lsp-pyright
just quietly “sat there” without saying it was missing something essential to function properly. No error messages, no warnings — just silent inaction. It wasn’t until I ran sudo npm install -g pyright
that things finally worked. But I have to say, I didn’t find any mention anywhere that I MUST to do this as a required step. I feel like this should be stated clearly, right at the very beginning of the documentation, in bold letters.
I have this example code:
I have no errors in the editor, but if I install pyright manually and run the command I have the expected error
How can I tell to
lsp-pyright
to use the installedpyright
?I have this configuration in my
.emacs
Also I'm using poetry as the package manager for my projects, and
poetry.el
package. I activate the environment byM-x poetry RET v
and restart the lsp withlsp-workspace-restart
I guess
lsp-pyright
install its own version of pyright, but couldn't found by looking into the elisp codeI'm also using
poetry config virtualenvs.in-project true
, which make poetry create the virtual environment at.venv
. When I ranM-: (lsp-pyright-locate-venv)
I receive"~/code/mypyproject/.venv"
in the minibuffer, but still no error reporting for the protocol implementation.Note: This may be an Y/X problem. I want to have the proper error message (X) and I believe the problem that the plugin is using whatever other version of
pyright
that is not the same of the command line(Y), but maybe Y is not the case