#protocol-buffers #grpc-python
#буферы протокола #grpc-python
Вопрос:
Допустим, у вас есть зависимые внешние интерфейсы для службы, вызываемой crane
в interacescrane
папке, как показано ниже
--interfaces
-----crane
------- crane.proto
------- vehicle.proto
И в crane.proto, который является внешним proto, у вас есть эта относительная ссылка на vehicle proto
import crane/vehicle.proto
....
Как мне использовать grpc_tools для правильной генерации буферов proto для привязки python?
Использование ниже выдает ошибку в crane.proto, что vehicles.proto не найден
$(PYTHON) -m grpc_tools.protoc -I ./interfaces/crane --python_out=./my_proj/generated --
grpc_python_out=./my_proj/generated crane.proto
Ответ №1:
Вы можете использовать, как показано нижеhttps://github.com/grpc/grpc/issues/9575#issuecomment-293934506
build:
$(MKDIR) -p myproj/generated
touch myproj/generated/__init__.py
$(MKDIR) -p ndn_objtrack/myproj/crane
touch myproj/generated/crane/__init__.py
$(PYTHON) -m grpc_tools.protoc -I ./interfaces/ --python_out=./my_proj/generated --
grpc_python_out=./my_proj/generated crane/crane.proto
И для использования в вашем файле Python
import grpc
from generated.myproj import crane_pb2
from generated.myproj import crane_pb2_grpc