pyright在有extraPaths的情况下类型stub files的小坑

背景:在使用某开发引擎的情况下开发python项目,使用pyright作为ale_linters和进行类型检查。

pyright的部分配置如下:

[tool.pyright]
venvPath = "."
venv = "venv"
extraPaths =  [
    "/home/***/***_venv/lib/python3.11/site-packages",
  ]

extraPaths里面是该开发引擎的venv位置。

遇到的问题:项目自己的venv环境安装了types-six,但是表现为未生效,pyright .类型报错,ALEHover给的类型提示也不对。

最终发现问题是,pyright优先使用了extraPaths里面的six,而且由于那里面没有types-six,所以也不会使用对应的pyi。至于项目自己venv里面的six和types-six,完全没有被使用。(线上似乎会优先用本项目安装的依赖,不过这里反正six的版本一样,没有影响)

解决方案:在该开发引擎的venv环境中安装了types-six,问题成功解决。

已向开发引擎维护者提出建议,提供types-xxx包或者[types] feature。