python报错:TypeError: Descriptors cannot be created directly.

问题

报错提示:

bash 复制代码
TypeError:不能直接创建描述符。
如果此调用来自 _pb2.py 文件,则您生成的代码已过期,必须使用 protoc >= 3.19.0 重新生成。
如果您不能立即重新生成原型,其他一些可能的解决方法是:
1. 将 protobuf 包降级到 3.20.x 或更低版本。
2. 设置 PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (但这将使用纯 Python 解析并且会慢得多)。

解决方案

我现在的版本为protobuf-4.25.1。

按照报错提示,卸载当前版本的protobuf,重新安装3.19.0版本

分别执行以下命令:

bash 复制代码
pip uninstall protobuf
bash 复制代码
pip install protobuf==3.19.0

重新安装后可正常使用!

相关推荐
JJ1M81 小时前
前缀和+贪心总结,基于每日一题力扣3439、3440
python·算法·leetcode
神所夸赞的夏天1 小时前
c#获取Datatable中某列最大或最小的行数据方法
开发语言·c#
h0l10w1 小时前
【Java】MongoDB
java·开发语言·mongodb
Tim_101 小时前
【算法专题训练】02、二进制
java·开发语言·算法
Code季风1 小时前
gRPC与Protobuf集成详解—从服务定义到跨语言通信(含Go和Java示例)
go·grpc·protobuf
Code季风1 小时前
Protobuf 高级特性详解
go·protobuf
EndingCoder1 小时前
排序算法与前端交互优化
开发语言·前端·javascript·算法·排序算法·交互
晓13131 小时前
JavaScript加强篇——第五章 DOM节点(加强)与BOM
java·开发语言·javascript
Skrrapper1 小时前
Flask 入门到实战(2):使用 SQLAlchemy 打造可持久化的数据层
后端·python·flask
我是唐青枫2 小时前
C#.NET serilog 详解
开发语言·c#·.net