深度学习入门:报错ModuleNotFoundError: No module named 'dataset.mnist'
在学习《深度学习入门:基于pythom的理论与实验》时,3.6.1MNIST数据集这一节有这么一段代码
import sys, os
sys.path.append(os.pardir) # 为了导入父目录中的文件而进行的设定
from dataset.mnist import load_mnist
但在运行之后发现报错“ModuleNotFoundError: No module named ‘dataset.mnist’”
起初以为是少了dataset模块,但是安装dataset后发现依然报错
书中有这么一句话
观察本书源代码可知,上述代码在 mnist_show.py 文件中。 mnist_show.py 文件的当前目录是 ch03 ,但包含 load_mnist() 函数的 mnist.py 文件在 dataset 目录下。因此, mnist_show.py 文件不能跨目录直接导入 mnist.py 文件。 sys.path.append(os.pardir) 语句实际上是把父目录 deep-learning-from-scratch 加入到 sys.path (Python的搜索模块的路径集)中,从而可以导入 deep-learning-from-scratch 下的任何目录(包括 dataset 目录)中的任何文件。——译者注
实际上,只需要把本书配套资料中的dataset文件复制到所在环境下的Lib文件中即可
以我的情况为例,我用anaconda在C:\Users\13520.conda\envs路径下新建虚拟环境,在此路径下找到所运行程序的环境,进入后将附带dataset文件复制进Lib里即可。
注:有些博客中提到把所有附带代码复制进Lib应该是没必要的,也注意自己所使用的环境与导入模块的环境是否是同一环境