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

1.问题描述

项目整理构成如下图所示在这里插入图片描述

1.1 根目录下py文件引用

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

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

如下图所示,在项目的子文件夹models下,有yolo.py文件。在其中引用。
在这里插入图片描述
如下引用,同文件夹中的 experimental 模块/包
在这里插入图片描述
出现报错
在这里插入图片描述

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)

加入后为
在这里插入图片描述
再次运行即可成功,问题完美解决。
在这里插入图片描述
感到对你有帮助就点个赞吧!

  • 30
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值