作业库导入错误。尝试加载一个我认为它不应该首先寻找的库

Joblib ImportError. Tries to load a library I think it shouldn't be looking for in the first place

我正在用 joblib.dump() 保存一个对象。当我尝试使用另一个 Python 实例(但相同版本)打开它时,joblib 抱怨它无法加载特定模块:

ImportError: No module named some_module

现在,这个模块 some_module 在那个 Python 实例中确实不可用。 然而,关键是我试图加载的对象根本不需要那个模块。

所以我的问题是,为什么 joblib 认为它需要这个包?

它是否以某种方式包括在转储时处于活动状态的所有模块?

Joblib 使用 picklepickle 可以将任意 Python 对象存储到磁盘,然后将其恢复到另一个进程中。但是,如果 Python 对象是或包含在执行转储的代码中定义的 class 的实例,则该 class 定义需要在执行转储的代码中可用做负载。

并且如果 class 是在由 执行转储的代码 导入的库中定义的,那么它还需要在加载时导入该库.您不必进行导入:pickle 会为您完成。但它必须可以导入。

我了解到您认为您尝试加载的对象不需要 class。但是 pickle 确实这么认为。