dask worker не может импортировать модуль

Я запускаю кластер dask и рабочий w. 16 ядер с использованием утилит CLI. В целом вроде работает очень хорошо. Однако по какой-то причине он не будет импортировать модули в cwd. Я пытаюсь запустить на своем экземпляре записной книжки следующее:

def tstimp():
  import os
  return os.listdir()
c.run(tstimp)

И я получаю следующий результат:

{'tcp://192.168.1.90:35885': ['class_positions.csv',
'.gitignore',
'README.md',
'fullrun.ipynb',
'.git',
'rf.py',
'__pycache__',
'dask-worker-space',
'utils.py',
'.ipynb_checkpoints']}

Обратите внимание, что здесь указан модуль rf.py. Таким образом, должно быть возможно импортировать его в worker, но когда я запускаю следующий код:

def tstimp():
  import rf
  return 42
c.run(tstimp)

Я получаю эту ошибку: ModuleNotFoundError: нет модуля с именем 'rf'

Почему я получаю эту ошибку?


person Michael Hansen    schedule 09.12.2018    source источник


Ответы (1)


Похоже, что текущий каталог не добавлен к пути python рабочих. Вы сможете исправить это, добавив его в путь.

def tstimp():
  import sys
  sys.path.append('.')
  import rf
  return 42
c.run(tstimp)
person Ivo Merchiers    schedule 19.08.2019