Когда вы делаете submit
, Dask завершает вашу задачу и отправляет ее работнику (-ям). В рамках этого пакета все переменные, которые требуются для задачи, также сериализуются и отправляются. В случае встроенных функций это включает в себя всю функцию, но в случае функций в модуле это только имена модулей и функций. Это делается для того же процессора и пропускной способности (представьте, что вы пытаетесь отправить все источники всех модулей, которые вы импортировали). На рабочей стороне задача unwrappd, а для функции это означает импорт модуля import base_client
. Это следует за обычным python logi c поиска в местах, определенных sys.path
. Если файл, определяющий модуль, отсутствует, вы получите сообщение об ошибке выше.
Чтобы решить, скопируйте файл в место, где его может увидеть рабочий. Вы можете сделать это с upload_file
на временной основе (которая использует временный каталог), но вам лучше установить модуль, используя обычные pip
или conda
методы. Импорт из «текущего каталога», скорее всего, не удастся даже с локальным кластером.
Чтобы получить больше информации, вам нужно опубликовать полный пример, который показывает проблему. На практике функции, использующие импорт из модулей, все время используются с submit
без проблем.