lsp-mode使用pyright补全python提示未知模块名

提问题前把相关的文档先读一遍。看了还不会来请教,把问题描述清楚,我相信大家很愿意帮忙。每次就那么一句,我的不行了、不工作了,让你改bug能行吗?

说起来,pyright 的那个 stub 库(里面就是一堆 Any(和没有没什么区别x

不好意思了!受教!

确实,我用pyright自己生成的还是不行,用github下载的就可以!

我上面都跟你解释了生成的不是用来补全用的,你都不看的么。。。。

但是可以用来补全,你是这么解决的吗,我把cv2.pyi拷到项目目录中就可以补全了

不是,补全与 pyi 应该没什么关系(

有关系呀,pyright 不是通过 type stubs 进行类型推断然后补全么

不是的(补全是 pyright language server 里面的内容,只要有 ast 就能补全,不需要 pyi

(pyright 自身只有类型检测,可以依靠 ast,也可以靠pyi

这种需要类型推断的只用 ast 不行吧

df = pd.read_json("test.json")
df.

当然,这是需要标注完好类型的 “类型推断” 的情况。

但 pyi 并不是必须的,没有 pyi,没有类型标注也能补全极大一部分,其余的你可以 useLibraryCodeForTypes。useLibraryCodeForTypes 为 true 就不需要 createstub.

对,但是 useLibraryCodeForTypes 并不总是有效,并且在一些库上会卡死,这个时候就需要 pyi 了,比如说之前反馈 issue 的时候他们写的 https://github.com/microsoft/python-type-stubs/tree/main/transformers-stubs

不过跑题了