More information: https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates
时间: 2023-07-14 10:56:50 浏览: 287
很高兴为您解答问题。关于您提到的谷歌协议缓冲区更新的更多信息,我可以告诉您以下内容:
谷歌协议缓冲区(Protocol Buffers)是一种轻量级的数据交换格式,旨在提高数据的效率和可扩展性。在2022年5月6日,谷歌发布了更新的Python库版本,包括对Python 3.10的支持、一些性能优化和增强的API功能,以及其他一些改进。
这些更新包括:
- 更好的Python 3.10支持,包括对Type和Literal的支持。
- 对动态消息的性能提升,包括使用“slots”的默认设置,以及使用“lazy fields”来减少内存使用。
- 新的“proto-plus”扩展,提供了更多的API,以支持更灵活的消息定义和处理。
- 一些新的工具和示例,以帮助开发人员更轻松地使用协议缓冲区。
如果您正在使用谷歌协议缓冲区,这些更新可能会对您的应用程序产生积极影响,提高其性能和可扩展性。谷歌协议缓冲区的Python库是免费且开源的,可以从GitHub上获取。
相关问题
TypeError: Descriptors cannot not 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
这个错误信息表明您的代码中使用了旧版本的 protobuf 库,而当前的 protobuf 库已经更新至 3.19.0 或更高版本。建议您更新 protobuf 库至最新版本,或者按照错误信息中提供的其他解决方案进行操作。具体来说,您可以尝试以下两种方式:
1. 降级 protobuf 库至 3.20.x 或更低版本。
2. 将环境变量 PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION 设置为 python,但这会使用纯 Python 解析,速度会慢很多。
更多信息可以参考错误信息中提供的链接。
typeerror: descriptors cannot not 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
该错误通常发生在使用旧版Python协议缓冲区的情况下。如果你刚刚更新了Python协议缓冲区并出现了这个错误,你需要重新生成你的代码。如果不能立即重新生成协议,请考虑使用以下可能的解决方法:
1.将protobuf软件包降级到3.20.x或更低版本。
2.设置protocol_buffers_python_implementation=python,但这将使用纯Python解析,速度会慢很多。
更多信息请查看:https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates。
阅读全文