Skip to content

from . import DataBlock_pb2 python3.10或者高版本上出现需错误,python3.8正常通过 #189

@luobu-code

Description

@luobu-code

TypeError Traceback (most recent call last)
Cell In[4], line 5
3 path = meb.get_path(r"ECMWF_HR/WIND/850/YYMMDDHH.TTT",time2,24)
4 print(path)
----> 5 grd = meb.io.read_gridwind_from_gds(path)
6 print(grd)

File s:\anaconda\envs\MeteoPy310\lib\site-packages\meteva\base\io\read_griddata.py:509, in read_gridwind_from_gds(filename, grid, level, time, dtime, data_name, dtime_units, outer_value, show)
505 def read_gridwind_from_gds(filename,grid = None,level = None,time = None,dtime = None,data_name = "data0",dtime_units = "hour",outer_value = None,show = False):
506 # ip 为字符串形式,示例 “10.20.30.40”
507 # port 为整数形式
508 # filename 为字符串形式 示例 "ECMWF_HR/TCDC/19083108.000"
--> 509 from . import DataBlock_pb2
510 if meteva.base.gds_ip_port is None:
511 print("请先使用set_config 配置gds的ip和port")

File s:\anaconda\envs\MeteoPy310\lib\site-packages\meteva\base\io\DataBlock_pb2.py:44
26 DESCRIPTOR = _descriptor.FileDescriptor(
27 name='DataBlock.proto',
28 package='',
29 syntax='proto3',
30 serialized_pb=_b('\n\x0f\x44\x61taBlock.proto"E\n\x0cStringResult\x12\x11\n\terrorCode\x18\x01 \x01(\x05\x12\x14\n\x0c\x65rrorMessage\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t"M\n\x0f\x42yteArrayResult\x12\x11\n\terrorCode\x18\x01 \x01(\x05\x12\x14\n\x0c\x65rrorMessage\x18\x02 \x01(\t\x12\x11\n\tbyteArray\x18\x03 \x01(\x0c"h\n\x18StringAndByteArrayResult\x12\x11\n\terrorCode\x18\x01 \x01(\x05\x12\x14\n\x0c\x65rrorMessage\x18\x02 \x01(\t\x12\x10\n\x08\x64\x61taName\x18\x03 \x01(\t\x12\x11\n\tbyteArray\x18\x04 \x01(\x0c"[\n\x0e\x46ileInfoResult\x12\x11\n\terrorCode\x18\x01 \x01(\x05\x12\x14\n\x0c\x65rrorMessage\x18\x02 \x01(\t\x12\x0e\n\x06isFile\x18\x03 \x01(\x08\x12\x10\n\x08\x66ileSize\x18\x04 \x01(\x03"\x94\x01\n\tMapResult\x12\x11\n\terrorCode\x18\x01 \x01(\x05\x12\x14\n\x0c\x65rrorMessage\x18\x02 \x01(\t\x12,\n\tresultMap\x18\x03 \x03(\x0b\x32\x19.MapResult.ResultMapEntry\x1a\x30\n\x0eResultMapEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42)\n\x1c\x63n.gov.cma.cimiss.gds.serverB\tDataBlockb\x06proto3')
31 )
32 _sym_db.RegisterFileDescriptor(DESCRIPTOR)
37 _STRINGRESULT = _descriptor.Descriptor(
38 name='StringResult',
39 full_name='StringResult',
40 filename=None,
41 file=DESCRIPTOR,
42 containing_type=None,
43 fields=[
---> 44 _descriptor.FieldDescriptor(
45 name='errorCode', full_name='StringResult.errorCode', index=0,
46 number=1, type=5, cpp_type=1, label=1,
47 has_default_value=False, default_value=0,
48 message_type=None, enum_type=None, containing_type=None,
49 is_extension=False, extension_scope=None,
50 options=None),
51 _descriptor.FieldDescriptor(
52 name='errorMessage', full_name='StringResult.errorMessage', index=1,
53 number=2, type=9, cpp_type=9, label=1,
54 has_default_value=False, default_value=_b("").decode('utf-8'),
55 message_type=None, enum_type=None, containing_type=None,
56 is_extension=False, extension_scope=None,
57 options=None),
58 _descriptor.FieldDescriptor(
59 name='name', full_name='StringResult.name', index=2,
60 number=3, type=9, cpp_type=9, label=1,
61 has_default_value=False, default_value=_b("").decode('utf-8'),
62 message_type=None, enum_type=None, containing_type=None,
63 is_extension=False, extension_scope=None,
64 options=None),
65 ],
66 extensions=[
67 ],
68 nested_types=[],
69 enum_types=[
70 ],
71 options=None,
72 is_extendable=False,
73 syntax='proto3',
74 extension_ranges=[],
75 oneofs=[
76 ],
77 serialized_start=19,
78 serialized_end=88,
79 )
82 _BYTEARRAYRESULT = _descriptor.Descriptor(
83 name='ByteArrayResult',
84 full_name='ByteArrayResult',
(...)
123 serialized_end=167,
124 )
127 _STRINGANDBYTEARRAYRESULT = _descriptor.Descriptor(
128 name='StringAndByteArrayResult',
129 full_name='StringAndByteArrayResult',
(...)
175 serialized_end=273,
176 )

File s:\anaconda\envs\MeteoPy310\lib\site-packages\google\protobuf\descriptor.py:621, in FieldDescriptor.new(cls, name, full_name, index, number, type, cpp_type, label, default_value, message_type, enum_type, containing_type, is_extension, extension_scope, options, serialized_options, has_default_value, containing_oneof, json_name, file, create_key)
615 def new(cls, name, full_name, index, number, type, cpp_type, label,
616 default_value, message_type, enum_type, containing_type,
617 is_extension, extension_scope, options=None,
618 serialized_options=None,
619 has_default_value=True, containing_oneof=None, json_name=None,
620 file=None, create_key=None): # pylint: disable=redefined-builtin
--> 621 _message.Message._CheckCalledFromGeneratedFile()
622 if is_extension:
623 return _message.default_pool.FindExtensionByName(full_name)

TypeError: Descriptors cannot be created directly.
If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0.
If you cannot immediately regenerate your protos, some other possible workarounds are:

  1. Downgrade the protobuf package to 3.20.x or lower.
  2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower).

More information: https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions