【问题标题】:Import error: No module named "utils" when using pickle.load导入错误:使用 pickle.load 时没有名为“utils”的模块
【发布时间】:2020-07-26 14:39:23
【问题描述】:

我首先使用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 会尝试从它出生的地方导入包?有人可以为此分享一个很好的解释吗?我很困惑。

【问题讨论】:

    标签: python import pickle importerror


    【解决方案1】:

    默认情况下,unpickling 将导入它在 pickle 数据中找到的任何类。这意味着如果您已经腌制了一个自定义类并且您在某处取消腌制它,pickle 将尝试导入该模块(在这种情况下为utils)。所以你需要在project2文件夹中有utils模块

    关注this了解更多信息

    【讨论】:

    • 如果有用,您可以接受答案。它可以帮助其他人找到答案。
    • 这是我能找到的关于这个话题的最佳答案!
    猜你喜欢
    • 1970-01-01
    • 2018-03-11
    • 1970-01-01
    • 2013-11-07
    • 2019-03-13
    • 2015-01-19
    • 2018-07-07
    • 2018-07-10
    • 2015-11-30
    相关资源
    最近更新 更多