TypeError: Descriptors cannot not be created directly.

1. 报错信息

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.

 

 2. 解决方案

  点击ternimal输入pip uninstall protobuf将现有版本的卸载,然后输入pip install protobuf 3.19.0即可。由于网速会影响成功率,我运行了两次才装成功的。

 

 3. 原因解析

  

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

 

 

posted @ 2022-06-09 13:06  JRS077  阅读(14185)  评论(0编辑  收藏  举报