0

我正在尝试使用 gRPC 访问google home graph api。在本教程中,我找到了一个关于如何编译 proto 文件以获取一些可供客户端使用的 python 代码的示例。提供的示例生成了一些 python 文件,但它们不可用,因为它们似乎导入了其他不存在的文件。

我用来编译的命令如下: python -m grpc_tools.protoc -I./googleapis --python_out=. --grpc_python_out=. googleapis/google/home/graph/v1/homegraph.proto 编译这个 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'

很明显,预计还会存在一些其他文件。

有没有办法自动编译我需要的原型的所有依赖项?

4

1 回答 1

0

有一个用于 Google API 的编译通用 ProtoBuf 库:https ://pypi.org/project/googleapis-common-protos/ 。

pip install googleapis-common-protos

安装此软件包后,导入错误应该会消失。

于 2019-07-24T17:54:40.097 回答