(это не дубликат моего предыдущего вопроса . Я пытаюсь использовать другой подход, использующий setup.py
, который отличается от существующего подхода, в котором использовалось requirements.txt
)
Мой проект настроен так:
.
├── __pycache__
├── eventstream-to-bigq-main.py
└── setup.py
файл setup.py
выглядит следующим образом
from setuptools import setup
from setuptools import find_packages
REQUIRED_PACKAGES = [
"protobuf3-to-dict==0.1.5",
"protobuf==3.11.2",
]
setup(
name="eventstream-to-bigq",
version="1.0",
install_requires=REQUIRED_PACKAGES,
packages=find_packages(),
)
наконец-то я пытаюсь использовать эти 2 библиотеки следующим образом
from google.protobuf.json_format import MessageToDict
from protobuf_to_dict import protobuf_to_dict
def parse_proto(message):
try:
dictobj = MessageToDict(message)
logging.info("google lib", dictobj)
except Exception as e:
logging.info("google-lib failed")
logging.error(e)
try:
s = protobuf_to_dict(message)
logging.info("third party", s)
except Exception as e:
logging.info("protobuf-to-dict failed")
logging.error(e)
Даже после этого я получаю следующие ошибки
message: "name 'MessageToDict' is not defined"
и message: "name 'protobuf_to_dict' is not defined"
.
Я отслеживал журналы, когда загружалось изображение, и мог видеть следующие строки журнала
I 2020-01-31T01:28:22.446626952Z 2020/01/31 01:28:22 Building wheel for protobuf3-to-dict (setup.py): finished with status 'done'
I 2020-01-31T01:28:22.443982764Z 2020/01/31 01:28:22 Building wheel for protobuf3-to-dict (setup.py): started
Я мог видеть аналогичные строки журнала для protobuf
. Единственное предупреждение, которое я вижу здесь, это WARNING: You are using pip version 19.3.1; however, version 20.0.2 is available.
Даже после всей этой установки Мой код все еще не работает
EDIT : забыл упомянуть, что я запускаю это используя эту команду
python -m eventstream-to-bigq-main \
--input_topic "projects/project_name/topics/topic_name" \
--job_name "rawdata-to-bigq-2" \
--output "gs://bucketname/wordcount/outputs" \
--runner DataflowRunner \
--project "project_name" \
--region "us-central1" \
--temp_location "gs://bucketname/tmp/" \
--staging_location "gs://bucketname/staging" \
--setup_file ./setup.py \
--streaming True