У меня есть скрипт python 2.7, который я запускаю локально для запуска задания Apache Beam / Google Dataflow (SDK 2.12.0). Задание берет файл CSV из хранилища Google, обрабатывает его, а затем создает объект в хранилище данных Google для каждой строки. Сценарий прекрасно работал годами ... но теперь он терпит неудачу:
INFO:root:2019-05-15T22:07:11.481Z: JOB_MESSAGE_DETAILED: Workers have started successfully.
INFO:root:2019-05-15T21:47:13.370Z: JOB_MESSAGE_ERROR: Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/dataflow_worker/batchworker.py", line 773, in run
self._load_main_session(self.local_staging_directory)
File "/usr/local/lib/python2.7/dist-packages/dataflow_worker/batchworker.py", line 489, in _load_main_session
pickler.load_session(session_file)
File "/usr/local/lib/python2.7/dist-packages/apache_beam/internal/pickler.py", line 280, in load_session
return dill.load_session(file_path)
File "/usr/local/lib/python2.7/dist-packages/dill/_dill.py", line 410, in load_session
module = unpickler.load()
File "/usr/lib/python2.7/pickle.py", line 864, in load
dispatch[key](self)
File "/usr/lib/python2.7/pickle.py", line 1139, in load_reduce
value = func(*args)
File "/usr/local/lib/python2.7/dist-packages/dill/_dill.py", line 827, in _import_module
return __import__(import_name)
ImportError: No module named idlelib
Я считаю, что эта ошибка происходит на рабочем уровне (не локально). Я не упоминаю об этом в своем сценарии. Чтобы убедиться, что это не я, я установил обновления для всех пакетов google-cloud, apache-beam [gcp] и т. Д. Локально - на всякий случай. Я попытался импортировать idlelib в мой скрипт, я получаю ту же ошибку. Есть предложения?