I使用NVIM-LSPConfig和LSP-Installer设置Neovim LSP,我还安装了
pyright
服务器。
没有任何进一步的配置。但是,当我在子文件夹中有一个类并添加新方法时,当我想在其他文件中访问它时,Pyright不会识别此方法。当我重新启动Neovim或打开并关闭文件时,Pyright突然识别了新添加的方法。
我也尝试了
:LspRestart
没有效果。 我试图将一些设置添加到Pyright服务器:
return {
settings = {
python = {
analysis = {
autoSearchPaths = true,
diagnosticMode = "workspace",
useLibraryCodeForTypes = true,
}
}
},
}
但这也没有作用。
:LspLog
还没有显示任何可能指出问题的东西:
[START][2022-07-15 11:11:05] LSP logging initiated
[WARN][2022-07-15 11:11:09] ...lsp/handlers.lua:109 "The language server pyright triggers a registerCapability handler despite dynamicRegistration set to false. Report upstream, this warning is harmless"
[WARN][2022-07-15 11:11:09] ...lsp/handlers.lua:456 "stubPath typings is not a valid directory."
[WARN][2022-07-15 11:11:20] ...lsp/handlers.lua:109 "The language server pyright triggers a registerCapability handler despite dynamicRegistration set to false. Report upstream, this warning is harmless"
我也找不到有关此问题的任何设置。由于我是Python的新手,我的导入方式和结构类可能并不常见,并且可能是可能导致此问题的问题。
作为主要入口点,我在根文件夹中有
main.py
其他源文件都位于一个没有一个没有一个program/
的文件夹中
INSIDE__init__.py
program/
__init__.py
:
core/
在
core/__init__.py
中我这样导入它:
from .myClass import myClass
您可以尝试以下操作:创建(或修改)pyproject.toml,将其放在项目根目录中。内部pyproject.toml,添加以下行:
main.py
您的想法是您必须手动添加子目录,这确实很乏味,但至少在我的情况下它有效。