把 Path(file).resolve() 这种基于当前脚本文件的绝对路径添加到Path中,更保险。如果是相对路径,遇上 cd 切换文件夹再运行脚本的方式,相对路径就无法正常导包了。
python
from pathlib import Path
FILE_PATH = Path(__file__).resolve()
DIR_PATH = FILE_PATH.parent
import sys
src_path = (FILE_PATH.parent.parent / "src").resolve()
sys.path.append(str(src_path))
from data_preprocess import stratified_split
from img_read import list_labeled_images
上述代码有个细节:str(src_path),这里要转成字符串。

此时,代码一般可正常运行,但无法通过 Ctrl+左键 访问函数对应的源码,并且包名下面有黄色波浪号,如上图所示。若要解决该问题,如下图所示,在 .vscode的配置文件夹的 settings.json 文件中配置 python.analysis.extraPaths。

json
{
"python.analysis.extraPaths": [
"${workspaceFolder}/DeepLearn/dog_cat_classification/src"
]
}
然后下面导入的包,就可以通过 Ctrl+左键 进行跳转了。
