如何使用PyBind11实现从C ++返回Python Protobuf对象的绑定?

时间:2019-05-25 17:39:06

标签: python c++ protocol-buffers pybind11

我正在为将Google Protobuf对象作为成员变量的C ++类编写pybindngs。我希望这些绑定函数返回(在Python领域中)protobuf对象的Python版本(由Google的proto编译器本地生成)。

如果我尝试在pybind定义中天真地返回protobuf的C ++版本

.def_readwrite("my_protobuf", &my_protobuf_)

,出现以下错误:

TypeError: Unable to convert function return value to a Python type! The signature was
        (self: MyClass) -> MyProtobufDef

这很有意义-返回类型是C ++ protobuf对象,而不是Python protobuf对象。如何将其转换为protobuf的Python版本?

0 个答案:

没有答案