Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 导入错误:没有名为“的模块”;utils“;使用pickle.load时_Python_Import_Pickle_Importerror - Fatal编程技术网

Python 导入错误:没有名为“的模块”;utils“;使用pickle.load时

Python 导入错误:没有名为“的模块”;utils“;使用pickle.load时,python,import,pickle,importerror,Python,Import,Pickle,Importerror,我首先使用pickle.dump将一些内容转储到pickle文件中。在utils.load_data中,我的项目层次结构如下所示 project1 -utils -__init__.py -load_data.py -data (other folder...) 然后将pickle文件输出到数据文件夹中。然后我将.pickle文件移动到另一个项目,项目层次结构是 project2 -data -main.py 当我在main.py中运行pickle

我首先使用pickle.dump将一些内容转储到pickle文件中。在utils.load_data中,我的项目层次结构如下所示

project1
  -utils
     -__init__.py
     -load_data.py
  -data
  (other folder...)
然后将pickle文件输出到数据文件夹中。然后我将.pickle文件移动到另一个项目,项目层次结构是

project2
   -data
   -main.py
当我在main.py中运行pickle.load()操作时,它会提示错误作为标题。但是,如果我将main.py移回project1文件夹,则错误将消失。因此,问题必须来自文件


我的问题是,为什么pickle要从它出生的地方导入这个包?有谁能给我一个好的解释吗?我很困惑。

默认情况下,取消勾选将导入它在pickle数据中找到的任何类。这意味着如果您已经pickle了一个自定义类,并且要在某个地方取消pickle,pickle将尝试导入该模块(
utils
)。因此,您需要将
utils
模块放在
project2
文件夹中


如需了解更多信息,请按以下步骤操作

如果答案有用,您可以接受。它帮助其他人找到答案。这是我能找到的关于这个话题的最好答案!