vscode-python-导入自定义包/模块报错ModuleNotFoundError: No module named ‘xxx‘

1.问题描述

项目整理构成如下图所示vscode-python-导入自定义包/模块报错ModuleNotFoundError: No module named ‘xxx‘_第1张图片

1.1 根目录下py文件引用

在项目的根目录比如 aaaa.py文件中引用自定义模块,如下图所示,可以成功。
在这里插入图片描述
在这里插入图片描述

1.2项目的子文件夹下py文件引用

如下图所示,在项目的子文件夹models下,有yolo.py文件。在其中引用。
vscode-python-导入自定义包/模块报错ModuleNotFoundError: No module named ‘xxx‘_第2张图片
如下引用,同文件夹中的 experimental 模块/包
vscode-python-导入自定义包/模块报错ModuleNotFoundError: No module named ‘xxx‘_第3张图片
出现报错
在这里插入图片描述

2.解决方案

2.1原理

1、因为默认的路径不在根目录了,而以当前运行的程序文件夹为根目录

2、如果在当前文件目录底下可以找到导入的包,那么可以直接使用from … import …

3、如果在当前文件目录底下找不到导入的包,则需要向sys.path添加包的所在的绝对位置。

2.2 解决

在py文件的开头加入如下代码。

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))  
# __file__获取执行文件相对路径,整行为取上一级的上一级目录
sys.path.append(BASE_DIR)

加入后为
vscode-python-导入自定义包/模块报错ModuleNotFoundError: No module named ‘xxx‘_第4张图片
再次运行即可成功,问题完美解决。
vscode-python-导入自定义包/模块报错ModuleNotFoundError: No module named ‘xxx‘_第5张图片
感到对你有帮助就点个赞吧!

你可能感兴趣的:(vscode使用,visual,studio,code,编辑器)