Ошибка импорта: нет модуля с именем tensorflow_transform.beam

#tensorflow #google-cloud-platform #google-cloud-dataflow #apache-beam

#tensorflow #google-облачная платформа #google-облако-поток данных #apache-beam

Вопрос:

При отправке задания потока данных в GCP я получаю эту ошибку:

 Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/dataflow_worker/batchworker.py", line 766, in run
    self._load_main_session(self.local_staging_directory)
  File "/usr/local/lib/python2.7/dist-packages/dataflow_worker/batchworker.py", line 482, in _load_main_session
    pickler.load_session(session_file)
  File "/usr/local/lib/python2.7/dist-packages/apache_beam/internal/pickler.py", line 266, in load_session
    return dill.load_session(file_path)
  File "/usr/local/lib/python2.7/dist-packages/dill/_dill.py", line 402, 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 818, in _import_module
    return __import__(import_name)
ImportError: No module named tensorflow_transform
  

Я предполагаю, что такие требования, как tensorflow-transform и apache-beam, предварительно установлены, и это работало несколько месяцев назад.

Ответ №1:

Вот решение, размещаю его здесь для людей, которые сталкиваются с такой же проблемой.

Вам нужно иметь setup.py файл в том же каталоге, что и файл, который вы запускаете, при условии, что файл содержит все шаги beam.

 import setuptools

setuptools.setup(
              name='whatever-name',
              version='0.0.1',
              install_requires=[
                  'apache-beam==2.10.0',
                  'tensorflow-transform==0.12.0'
                  ],
              packages=setuptools.find_packages(),
              )
  

В файле python у меня было

 options = PipelineOptions()
  

который пришлось изменить на:

 options = PipelineOptions(setup_file="./setup.py")
  

Комментарии:

1. Отличное решение! В Google Cloud должно быть это «setup.py » пошаговая часть их руководства.