背景:在使用某开发引擎的情况下开发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。
Comments
No comments yet. Be the first to react!