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)