在 monorepo 上遇到了 Pyright 的问题:它无法识别从附近项目/库导入的类/函数(获得
reportMissingImports
)。
例如,使用此存储库结构:
.
├── library
| └── __init__.py
├── project1
| └── main.py
├── project2 ...
└── pyproject.toml
main.py
中的这一行将引发reportMissingImports
错误(即使代码正在运行):
from library import ModuleClass
作为手动解决方法,此命令从根级别运行:
poetry run pyright --pythonpath project1/.venv/bin/python project1/main.py
但是由于我有多个项目,每个项目都有自己的 .venv 文件夹,因此我无法全局设置
pythonpath
。
我尝试了
pyproject.toml
中的多个选项来为整个存储库正确配置pyright,但到目前为止没有任何效果。
像pyright一样配置多个venv的正确方法是什么?
仅供参考,作为上下文,我的最终目标是使用 LSP-pyright 和 python >=3.11 为 Sublime Text 3 设置 Pyright。但在此之前至少命令行应该可以工作(-‿-")
这里有很多东西:
pyproject.toml
配置(在其文档中未精确说明);pyrightconfig.json
文件非常简单:{
//"verboseOutput": true,
"reportMissingImports": "none",
"reportMissingModuleSource": "none",
"executionEnvironments": [
{
"root": ".",
"extraPaths": ["library/src", "project1/src", "project2/src"]
}
]
}
extraPaths
是从根目录解析的。它需要 src/ subdir 声明。