GCP DataflowRunner ImportErrors - PullRequest
       20

GCP DataflowRunner ImportErrors

0 голосов
/ 23 ноября 2018

Код работает при использовании опции DirectRunner.Но получаю ошибки импорта при переключении на DataflowRunner.lxml модуль не найден это причина.При попытке использовать код setuptools вместе с основным кодом он все еще не работает (--setup_file setup.py).

setuptools.setup(
    name='lxml',
    version='4.2.5',
    install_requires=[],
    packages= setuptools.find_packages(),
)

Ошибка: ошибка ImportError: нет модуля с именем lxml [при выполнении «Выполнить запрос»]

Любая помощь / предложения по устранению этой ошибки?Спасибо.

1 Ответ

0 голосов
/ 29 ноября 2018

name, который вы передаете функции setuptools.setup, является именем вашего пакета, и его зависимости должны быть указаны в аргументе install_requires.Я полагаю, что он работает с DirectRunner, поскольку пакет установлен на вашем локальном компьютере.

Пример Beam juliaset предоставляет пример файла setup.py:

REQUIRED_PACKAGES = ['numpy']
setuptools.setup(
    name='juliaset', # this is their package name
    version='0.0.1',
    description='Julia set workflow package.',
    install_requires=REQUIRED_PACKAGES,
    ...)

PyPI-зависимости

Если lxml является вашей единственной зависимостью или все ваши зависимости от PyPI, вы сможете использовать гораздо более простой файл needs.txt.В целом, подходу setup.py требуется гораздо больше шаблонов.

Чтобы использовать файл require.txt, заморозьте свои зависимости:

pip freeze > requirements.txt

и передайте файл require.txt в свой конвейер:

--requirements_file requirements.txt

См. Также страницу документации Beam для различных шаблонов зависимостей для Python .

...