Joblib ImportError.Пытается загрузить библиотеку, я думаю, что это не нужно искать в первую очередь - PullRequest
0 голосов
/ 01 июня 2018

Я сохраняю объект с joblib.dump().Когда я пытаюсь открыть его, используя другой экземпляр Python (но той же версии), joblib жалуется, что не может загрузить конкретный модуль:

ImportError: No module named some_module

Теперь этот модуль some_module действительно недоступен в этом Pythonпример.Дело, однако, в том, что объект, который я пытался загрузить, вообще не нуждается в этом модуле.

Итак, мой вопрос: почему JobLib считает, что ему нужен этот пакет?

каким-то образом включить все модули, которые были активны на момент выгрузки?

1 Ответ

0 голосов
/ 01 июня 2018

Joblib использует pickle.pickle может хранить любой произвольный объект Python на диске и впоследствии восстанавливать его в другом процессе.Но если этот объект Python является или содержит экземпляр класса, который определен в коде, который выполняет дамп, то это определение класса должно быть доступно в коде, который выполняет загрузку.

И если этот класс определен в библиотеке, которая была импортирована с помощью кода, который создает дамп, то он также должен импортировать эту библиотеку во время загрузки.Вам не нужно делать импорт: pickle сделает это за вас.Но он должен быть доступен для импорта.

Я понимаю, что вы не думаете, что объект, который вы пытаетесь загрузить, нуждается в классе.Но pickle действительно так думает.

...