Mar*_*ack 1 python python-venv python-poetry pyright
在诗歌项目中,本地依赖项安装在~/.cache/pypoetry/virtualenvs/文件夹中。nvim 中的 Pyright 抱怨import无法解析包行。我应该包含什么内容pyproject.toml?或者如何向pyright显示依赖项的路径?谢谢
我的pyrightconfig.json看起来像这样:
{
"venvPath": ". /home/ajanb/.cache/pypoetry/virtualenvs/",
"venv": "tools-configfactory-materialmodel-jnEEQvIP-py3.10"
}
Run Code Online (Sandbox Code Playgroud)
我发现我需要将它添加到neovim的配置文件中,你能帮我把它写成.lua吗?
au FileType python let b:coc_root_patterns = ['.git', '.env', 'venv', '.venv', 'setup.cfg', 'setup.py', 'pyrightconfig.json']
Run Code Online (Sandbox Code Playgroud)
我花了几天时间解决这个问题。最后,唯一有效的是将其包含在我的pyproject.toml:
[tool.pyright]
venvPath = "/Users/user/Library/Caches/pypoetry/virtualenvs"
venv = "bfrl-93mGb6aN-py3.11"
Run Code Online (Sandbox Code Playgroud)
我也在使用这个 nvim 插件:pote-v
我想你可以通过适当的 LSP 配置来完成此任务,但我对 lua 和 lsp 配置不够熟悉,无法自动解决这个问题。
小智 7
这就是我解决这个问题的方法。在我的 pyproject.toml 中,我像这样配置了pyright(除其他外):
[tool.pyright]
venvPath = "."
venv = ".venv"
Run Code Online (Sandbox Code Playgroud)
然后我在我的项目中包含了一个诗歌.toml:
[virtualenvs]
in-project = true
Run Code Online (Sandbox Code Playgroud)
这样我就不必发现虚拟环境的路径和名称,它始终相同并且在项目中可用。