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

重新安装后可正常使用!

相关推荐
就这个java爽!几秒前
JAVA网络编程【基于TCP和UDP协议】超详细!!!
java·开发语言·网络·tcp/ip·udp·eclipse·idea
hzw0510几秒前
Jupyter的使用
ide·python·jupyter
环能jvav大师8 分钟前
基于R语言的统计分析基础:使用dplyr包进行数据操作
大数据·开发语言·数据分析·r语言
懒洋洋大魔王24 分钟前
7.Java高级编程 多线程
java·开发语言·jvm
=(^.^)=哈哈哈25 分钟前
Golang如何优雅的退出程序
开发语言·golang·xcode
学习使我变快乐27 分钟前
C++:用类实现链表,队列,栈
开发语言·c++·链表
茶馆大橘29 分钟前
【黑马点评】已解决java.lang.NullPointerException异常
java·开发语言
lmy_t33 分钟前
C++之第十二课
开发语言·c++
马剑威(威哥爱编程)36 分钟前
除了递归算法,要如何优化实现文件搜索功能
java·开发语言·算法·递归算法·威哥爱编程·memoization
我码玄黄1 小时前
THREE.js:网页上的3D世界构建者
开发语言·javascript·3d