2016-08-16 1 views
3

Использование 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-файла.

Спасибо!

+0

Для каждого файла прото есть цель proto_library BUILD, правильный способ заключается в Базэл построить эту цель –

+0

Да, в этом случае: serving_proto_library ( имя = "inception_inference_proto", SRCS = [ "inception_inference.proto"], has_services = 1, cc_api_version = 2, cc_grpc_version = 1,) Как указано выше, регенерация не работает из коробки. – BigData

+0

Вы пробовали делать 'bazel build ...: inception_inference_proto'? –

ответ

2

Попробуйте

protoc -I ./ --python_out=. --grpc_out=. --plugin=protoc-gen-grpc=`which grpc_python_plugin` ./your.proto 

Убедитесь, что вы установили protoc 3.0 (C++ и питона плагин), а также может быть запущен пипс установить на grpcio, если вы еще не сделали.

Смежные вопросы