为什么从 proto 生成的 python 代码没有生成 类?
Why python code generation from proto is not generating classes?
我目前正在尝试从原型文件生成 python 代码。
我的原型文件如下所示:
syntax = "proto3";
package display;
message Hello {
uint32 version = 1;
uint32 value = 2;
int32 id = 3;
}
我使用这个 protoc 命令生成 python 代码:
protoc -I="." --python_out="." test.proto
这是生成的 python 文件:
# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: test.proto
"""Generated protocol buffer code."""
from google.protobuf.internal import builder as _builder
from google.protobuf import descriptor as _descriptor
from google.protobuf import descriptor_pool as _descriptor_pool
from google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default()
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\ntest.proto\x12\x07\x64isplay\"3\n\x05Hello\x12\x0f\n\x07version\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\r\x12\n\n\x02id\x18\x03 \x01(\x05\x62\x06proto3')
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'test_pb2', globals())
if _descriptor._USE_C_DESCRIPTORS == False:
DESCRIPTOR._options = None
_HELLO._serialized_start=23
_HELLO._serialized_end=74
# @@protoc_insertion_point(module_scope)
它看起来一点都不像本页 google 的文档:
https://developers.google.com/protocol-buffers/docs/pythontutorial
您知道为什么没有生成元类吗?
我正在使用 Python 3.9 和最新版本的 protobuf 包和最新版本的 protoc。
将--grpc_python_out="."
添加到protoc 命令。这将生成一个额外的脚本,其中包含所需的 类
我目前正在尝试从原型文件生成 python 代码。
我的原型文件如下所示:
syntax = "proto3";
package display;
message Hello {
uint32 version = 1;
uint32 value = 2;
int32 id = 3;
}
我使用这个 protoc 命令生成 python 代码:
protoc -I="." --python_out="." test.proto
这是生成的 python 文件:
# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: test.proto
"""Generated protocol buffer code."""
from google.protobuf.internal import builder as _builder
from google.protobuf import descriptor as _descriptor
from google.protobuf import descriptor_pool as _descriptor_pool
from google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default()
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\ntest.proto\x12\x07\x64isplay\"3\n\x05Hello\x12\x0f\n\x07version\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\r\x12\n\n\x02id\x18\x03 \x01(\x05\x62\x06proto3')
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'test_pb2', globals())
if _descriptor._USE_C_DESCRIPTORS == False:
DESCRIPTOR._options = None
_HELLO._serialized_start=23
_HELLO._serialized_end=74
# @@protoc_insertion_point(module_scope)
它看起来一点都不像本页 google 的文档: https://developers.google.com/protocol-buffers/docs/pythontutorial
您知道为什么没有生成元类吗?
我正在使用 Python 3.9 和最新版本的 protobuf 包和最新版本的 protoc。
将--grpc_python_out="."
添加到protoc 命令。这将生成一个额外的脚本,其中包含所需的 类