我正在使用pyright进行类型检查,还使用pytest在Visual Studio Code中进行测试。我的测试的文件夹结构是在程序包root中有一个“ test”子文件夹。例如
|
MyPackage
|-- __init__.py
|-- MyModule.py
|--test
|-- __init__.py
|--MyModule_test.py
我正在组织这样的事情,因为将会有很多软件包,而且我想保持事情井井有条。 我在pytest内部
import pytest
import MyPackage.MyModule
...
Pytest能够发现测试并可以正常运行,因为它具有调整其sys.path
(或其他功能)的特殊功能。
但是,pyright只会抱怨无法导入模块,
Import 'MyPackage.MyModule' could not be resolvedpyright (reportMissingImports)
。这是有道理的,但是有什么方法可以解决这个问题,无论是在拼写方式还是在Visual Studio Code设置中,都可以防止这种抱怨。
答案 0 :(得分:0)
好吧,如图here所示的相对导入能够解决此问题。因此,就我而言,我应该
# MyModule_test.py
import pytest
from .. import MyModule
答案 1 :(得分:0)
您可以将库路径添加到路径变量中。
import sys
sys.path.insert(1, str('..'))
import MyModule
要使 Pylance 能够正确使用您的库(用于自动完成...),请使用以下步骤:
默认情况下,Pylance 包含工作区的根路径。如果您想包含其他子目录作为导入解析路径,您可以使用工作区的 python.analysis.extraPaths
设置添加它们。
python.analysis.extraPaths