python编程出现‘ModuleNotFoundError: No module named XXX‘报错的情形之一及解决方案

在执行ACMR跨模态检索代码时遇到ModuleNotFoundError,问题出在模块utils1未被正确导入。作者尝试了改名和调整import顺序,最终发现是os.chdir()改变目录后影响了模块的查找路径。将utils1的导入置于os.chdir()之后解决了问题,尽管起初这两个文件在同一目录下,但chdir操作改变了当前工作目录导致找不到模块。

问题描述

跑ACMR跨模态检索的代码时,程序报错ModuleNotFoundError: No module named ‘utils1’
如图所示
在这里插入图片描述


原因分析:

出错部分的源代码为:
在这里插入图片描述

因为担心源码中的utils和python的包重名,所以将包名改成了utils1

各种改名重启无果后,观察到代码中使用了os.chdir()更改了一次目录,且之后有用from的形式引入py文件中的函数 在这里插入图片描述


解决方案:

效仿其他py文件的引入,将utils1的引入置于os.chdir()之后

注:这里我将utils1和base_model文件放在了同一目录下


一开始也是放在同一目录下,按理说即使进行过一次chdir也能够找到,但实际情况就是没有找到,没太搞懂为什么?

解决

成功解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值