Mik*_*ike 14 neovim pyenv pyright
我在 neovim (0.5) 中使用 Pyright LSP。它可以工作,但似乎只能选择标准 python 安装中可用的软件包。对于不在基本 python 中但在我的 pyenv 环境中的包,它不会自动完成。在 VSCode 中,通过选择解释器可以很容易地完成此操作。
如何在 Neovim 中设置 Pyright LSP 使用的虚拟环境或 pyenv 版本?
Ale*_*ira 23
这实际上并不是一个答案,nvim-lsp 中存在这个问题,他们在其中探索了一些替代方案,事实证明 nvim (或 Pyright,我不太清楚)不尊重/加载 pyenv 本地 .python 版本文件。另一种方法是使用常规 venv。在运行 nvim 之前使用pyenv shell myvenv也可以,但它违背了 .python-version 文件的便利性。也许有一种方法可以使用 bashrc/zshrc/config.fish 中的一些脚本加载正确的 venv,但恕我直言,这也不是那么方便。
https://github.com/neovim/nvim-lspconfig/issues/717
编辑:找到了一个好的解决方案
有一个简单的方法可以让pyright与pyenv virtualenvs一起工作:
pyrightconfig.json在项目的根目录中创建文件,然后粘贴以下内容,将 USERNAME 和 MY-VENV 替换为您的用户和 venv,假设您的 pyenv 安装在~/.pyenv. 它在 之外添加了另一个文件.python-version,但它很简单,并且不会弄乱您的 shell 配置。
{
"venvPath": "/home/USERNAME/.pyenv/versions/",
"venv": "MY-VENV"
}
Run Code Online (Sandbox Code Playgroud)
您可以在此处查看完整文档: https ://github.com/microsoft/pyright/blob/master/docs/configuration.md
编辑2: 查看我创建的这个插件pyenv-pyright。有了它,您只需一个命令即可设置 Pyright 来使用 pyenv venvs:
pyenv local my-venv
pyenv pyright
Run Code Online (Sandbox Code Playgroud)
或者
pyenv pyright my-venv
Run Code Online (Sandbox Code Playgroud)
这将pyrightconfig.json使用您选择的 pyenv virtualenv 自动创建/更新文件。这是克服 neovim+pyright+pyenv virtualenvs 设置的便捷方法。
https://github.com/alefpereira/pyenv-pyright
| 归档时间: |
|
| 查看次数: |
22203 次 |
| 最近记录: |