Как скомпилировать файлы прототипа api homegraph google для python usign grpcio_tools.protoc?

Я пытаюсь использовать gRPC для доступа к api домашнего графика Google. в этом руководстве я нашел пример того, как скомпилировать прототип файл, чтобы получить код Python, который может использоваться клиентом. Приведенный пример генерирует некоторые файлы python, но их нельзя использовать, потому что они, кажется, импортируют другие файлы, которые не существуют.

Для компиляции я использовал следующую команду: python -m grpc_tools.protoc -I./googleapis --python_out=. --grpc_python_out=. googleapis/google/home/graph/v1/homegraph.proto для компиляции этот прото-файл

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

(grpc_test) ➜  grpc_test git:(master) ✗ python test.py
Traceback (most recent call last):
  File "test.py", line 2, in <module>
    import google.home.graph.v1.homegraph_pb2 as home_graph
  File "/home/corsair/code/grpc_test/google/home/graph/v1/homegraph_pb2.py", line 16, in <module>
    from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2
ModuleNotFoundError: No module named 'google.api'

Понятно, что предполагается наличие некоторых других файлов.

Есть ли способ автоматически скомпилировать все необходимые мне зависимости прото?


person cunfusu    schedule 23.07.2019    source источник


Ответы (1)


Существует скомпилированная общая библиотека ProtoBuf для API Google: https://pypi.org/project/googleapis-common-protos/.

pip install googleapis-common-protos

После установки этого пакета ошибка импорта должна исчезнуть.

person Lidi Zheng    schedule 24.07.2019