问题描述
跑ACMR跨模态检索的代码时,程序报错ModuleNotFoundError: No module named ‘utils1’
如图所示

原因分析:
出错部分的源代码为:

因为担心源码中的utils和python的包重名,所以将包名改成了utils1
各种改名重启无果后,观察到代码中使用了os.chdir()更改了一次目录,且之后有用from的形式引入py文件中的函数 
解决方案:
效仿其他py文件的引入,将utils1的引入置于os.chdir()之后
注:这里我将utils1和base_model文件放在了同一目录下
一开始也是放在同一目录下,按理说即使进行过一次chdir也能够找到,但实际情况就是没有找到,没太搞懂为什么?

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

被折叠的 条评论
为什么被折叠?



