ModuleNotFoundError: No module named ‘common.functions‘

文章讲述了在《深度学习入门》源代码中遇到的ModuleNotFoundError,作者尝试了多种解决方案,包括调整sys.path以确保正确导入文件夹内的包,怀疑是由于其他重名包导致的优先级问题。最终通过修改导入包的优先级解决了问题。
摘要由CSDN通过智能技术生成

ModuleNotFoundError: No module named ‘common.functions’

《深度学习入门-基于python的理论与实现》源代码中的ch3文件夹下的neuralnet_mnist_batch.py运行报错:

ModuleNotFoundError: No module named 'common.functions'

在网上查了半天解决方案,也看了好多解决方案,但是还是没有解决。

解决方案1:

# 注释这行代码。因为os.pardir输出的是“..”,不是绝对路径。
# sys.path.append(os.pardir) # 为了导入父目录的文件而进行的设定
# 增加以下三行代码
from os.path import dirname
parent = dirname(dirname(__file__))
sys.path.append(parent)

上面的解决方案1我试了,但是没有效果,也看了很多解决方案,也都试了,但是还是没解决。(我保证文件夹没什么问题,肯定不是文件夹的问题)
最后灵机一动,猜测可能是导入包时,有其他重名的包,那个重名的包优先级大于我要导入的文件夹的包,所以我增加了一行设置导入包优先级的代码。问题解决!(这是我的猜测,我不确定是不是这样,如果有懂得可以告知我一下,谢谢!)

解决方案2:

# sys.path.append(os.pardir) # 为了导入父目录的文件而进行的设定
from os.path import dirname
parent = dirname(dirname(__file__))
sys.path.append(parent)
#如果解决方案1不行,可以再在下方添加一行代码,设置一下导入包的优先级,优先导入文件夹里的包
sys.path.insert(1,parent)
  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值