У вас неправильное представление о том, как работает pickle.
Он не отделяет что-либо, кроме состояния экземпляра (__dict__
по умолчанию или пользовательской реализации).При расщеплении, он просто пытается создать экземпляр соответствующего класса (здесь идет ваша ошибка импорта) и установить состояние засолки.
Есть причина для этого: вы не знаете заранее, какие методы будут использоваться после load
, так что вы не можете засолить реализацию.В дополнение к этому, во время рассола вы не можете построить AST, чтобы увидеть, какие методы / модули понадобятся после десериализации, и основная причина этого - динамическая природа python - ваша реализация может фактически меняться в зависимости от ввода.
В конце концов, даже если предположить, что теоретически у нас будет интеллектуальная автономная сериализация рассола, это будет фактическая модель + склеарн в одном файле, без надлежащего способа управления им.