这种问题大多出现的情况是,在VS Code打开后的根目录下,加入了多级文件夹,通常多级文件夹内的自定义文件在import后无法被正确识别。如下图所示:
解决方案有如下两种:
1.修改PYTHONPATH
PYTHONPATH 的作用官网介绍如下:
In VS Code, PYTHONPATH affects debugging, linting, IntelliSense, testing, and any other operation that depends on Python resolving modules.
可见若 PYTHONPATH 未准确设置的话,会影响 VS Code 的智能提示和代码风格检查、单元测试等,如对导入模块的解析。
对于一下给定的目录结构:
workspaceRootFolder
.vscode
|...OtherFolders
|codeFolder
|-__init__.py
|...OtherLibFiles
在workspaceRootFlolder下创建一个文件,命名为 .env,在此空文件中添加一行:
PYTHONPATH = codeFolder
在这里使用你自己的目录路径替代codeFolder
在settings.json添加 python.envFile 设置:
“python.envFile”: “${workspaceFolder}/.env”
然后重启 VS Code
2.修改settings.json
在2019.11.21的更新后,微软官网给出了另一种更为便捷的解决方案How to resolve customer imports
需要解析多级目录下的自定义模块,只需在.vscode/settings.json中,设置
python.autoComplete.extraPaths 属性和python.analysis.extraPaths属性,在其中添加需要解析的目录 ./src,这里src替换为你自己的文件路径
"python.autoComplete.extraPaths": [
"./src"
],
"python.analysis.extraPaths": [
"./src"
]
上述两种方法任选其一,均可解决问题。