Я пробовал несколько подходов к расчетом функции python с зависимостями, следуя многим рекомендациям по StackOverflow (например, укроп, cloudpickle и т.д.), но все, похоже, сталкиваются с фундаментальной проблемой, которую я не могу понять.
У меня есть основной модуль, который пытается раскрыть функцию из импортированного модуля, отправляет его поверх ssh, который будет незакрашен и выполнен на удаленном компьютере.
Итак, main имеет:
import dill (for example)
import modulea
serial=dill.dumps( modulea.func )
send (serial)
На удаленном компьютере:
import dill
receive serial
funcremote = dill.loads( serial )
funcremote()
Если функции, замаринованные и отправленные, являются функциями верхнего уровня, определенными в самой себе, все работает. Когда они находятся в импортированном модуле, функция загрузки выходит из строя с сообщениями типа "модуль модуля не найден".
Похоже, что имя модуля маринуется вместе с именем функции. Я не вижу никакого способа "исправить" рассол, чтобы удалить зависимость или, альтернативно, создать в приемнике фиктивный модуль, чтобы стать получателем раскалывания.
Любые указатели будут высоко оценены.
- прасанна