Использование incepetion_inference.proto в качестве примера, я попытался регенерировать inception_inference.pb2.py файл с помощью команды:.Как правильно восстановить файлы python .pb2.py из файлов .proto с помощью компилятора протокола для тензора?
protoc inception_inference.proto --python_out =/
Сравнивая вновь созданный файл, inception_inference.pb2.py с первоначально один генерируется из компиляции, она идентична по лицензии notication за исключением, а нижняя часть, которая содержит:
import abc
import six
from grpc.beta import implementations as beta_implementations
from grpc.framework.common import cardinality
from grpc.framework.interfaces.face import utilities as face_utilities
class BetaInceptionServiceServicer(six.with_metaclass(abc.ABCMeta, object)):
"""<fill me in later!>"""
@abc.abstractmethod
def Classify(self, request, context):
raise NotImplementedError()
class BetaInceptionServiceStub(six.with_metaclass(abc.ABCMeta, object)):
"""The interface to which stubs will conform."""
@abc.abstractmethod
def Classify(self, request, timeout):
и так далее, и так далее ...
Я предполагаю, что часть системы сборки Bazel внедряет ее в файл .pb2.py, но я не могу найти, где это делается.
Кто-нибудь знает, как правильно восстановить этот файл? Очевидно, что понимание этого - необходимый шаг в создании моего собственного .proto-файла.
Спасибо!
Для каждого файла прото есть цель proto_library BUILD, правильный способ заключается в Базэл построить эту цель –
Да, в этом случае: serving_proto_library ( имя = "inception_inference_proto", SRCS = [ "inception_inference.proto"], has_services = 1, cc_api_version = 2, cc_grpc_version = 1,) Как указано выше, регенерация не работает из коробки. – BigData
Вы пробовали делать 'bazel build ...: inception_inference_proto'? –