При выполнении учебника по https://developers.google.com/protocol-buffers/docs/pythontutorial, я столкнулся с самой первой проблемой.Я просто хочу инициализировать очень простое перечисление.Это мое сообщение (UserRole.proto
):
syntax = "proto3";
package benji;
enum UserRole {
superUser = 0;
admin = 1;
recruiter = 2;
regular = 3;
}
Вот как я хочу использовать его в MyFile.py
:
import UserRole_pb2
myUserRole = UserRole_pb2().UserRole()
Дополнительная информация:
Это сгенерированный файл (UserRole_pb2.py
):
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: UserRole.proto
import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf.internal import enum_type_wrapper
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default()
DESCRIPTOR = _descriptor.FileDescriptor(
name='UserRole.proto',
package='benji',
syntax='proto3',
serialized_options=None,
serialized_pb=_b('\n\x0eUserRole.proto\x12\x05\x62\x65nji*@\n\x08UserRole\x12\r\n\tsuperUser\x10\x00\x12\t\n\x05\x61\x64min\x10\x01\x12\r\n\trecruiter\x10\x02\x12\x0b\n\x07regular\x10\x03\x62\x06proto3')
)
_USERROLE = _descriptor.EnumDescriptor(
name='UserRole',
full_name='benji.UserRole',
filename=None,
file=DESCRIPTOR,
values=[
_descriptor.EnumValueDescriptor(
name='superUser', index=0, number=0,
serialized_options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='admin', index=1, number=1,
serialized_options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='recruiter', index=2, number=2,
serialized_options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='regular', index=3, number=3,
serialized_options=None,
type=None),
],
containing_type=None,
serialized_options=None,
serialized_start=25,
serialized_end=89,
)
_sym_db.RegisterEnumDescriptor(_USERROLE)
UserRole = enum_type_wrapper.EnumTypeWrapper(_USERROLE)
superUser = 0
admin = 1
recruiter = 2
regular = 3
DESCRIPTOR.enum_types_by_name['UserRole'] = _USERROLE
_sym_db.RegisterFileDescriptor(DESCRIPTOR)
# @@protoc_insertion_point(module_scope)
Что ж, происходит сбой в строке 4 в сгенерированном файле.Эта строка:
from google.protobuf.internal import enum_type_wrapper
Выдает «Любое исключение».Как я могу использовать этот простой сгенерированный файл в Python?