Как я могу установить пакет Python в Google Dataflow и импортировать его в свой конвейер? - PullRequest
0 голосов
/ 09 сентября 2018

Моя структура папок выглядит следующим образом:

Project/
 --Pipeline.py
 --setup.py
 --dist/
  --ResumeParserDependencies-0.1.tar.gz
 --Dependencies/
        --Module1.py
        --Module2.py
        --Module3.py

Мой setup.py файл выглядит так:

from setuptools import setup, find_packages

setup(name='ResumeParserDependencies',
  version='0.1',
  description='Dependencies',
  install_requires=[
   'google-cloud-storage==1.11.0',
   'requests==2.19.1',
   'urllib3==1.23'
    ],
  packages = ['Dependencies']
 )

Я использовал файл setup.py для создания файла tar.gz, используя 'python setup.py sdist'. Файл tar находится в папке dist как ResumeParserDependencies-0.1.tar.gz. Я тогда указал

setup_options.extra_packages = ['./dist/ResumeParserDependencies-0.1.tar.gz'] in my pipeline options.

Однако, когда я запускаю свой конвейер в потоке данных, я получаю ошибку «Нет модуля с именем ResumeParserDependencies». Если я использую 'pip install ResumeParserDependencies-0.1.tar.gz' локально, пакет устанавливается, и я вижу его, используя 'pip freeze'.


Чего мне не хватает, чтобы загрузить пакет в Dataflow?

Ответы [ 2 ]

0 голосов
/ 11 сентября 2018

Я изменил структуру папок и заставил это работать:

Project/
--Pipeline.py
--setup.py
--Module1/
    --__init__.py
--Module2/
    --__init__.py
--Module3/
    --__init__.py

Файл setup.py теперь выглядит так: из настроек импорта setuptools, find_packages

setup(name='ResumeParserDependencies',
  version='0.1',
  description='Dependencies',
  install_requires=[
   'google-cloud-storage==1.11.0',
   'urllib3==1.23'
    ],
  packages = find_packages()
 )

В моемконвейер, я указал:

setup_options.setup_file = './setup.py'

И мне не нужно:

setup_options.extra_packages = ['./dist/ResumeParserDependencies-0.1.tar.gz']

Ссылка: find_packages не находит мой файл Python

0 голосов
/ 11 сентября 2018

Обычно, когда эта проблема возникает из-за несоответствия версий SDK или рабочих зависимостей. Чтобы решить вашу проблему, проверьте версию потока данных и Рабочие зависимости для версии SDK , чтобы убедиться, что вы используете совместимые версии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...