解决TypeError: Descriptors cannot not be created directly报错!

完整报错如下:

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).

解决方案:

首先看了网上的大佬说要将protobuf更换成较低的版本

pip uninstall protobuf
pip install protobuf==3.20.0

 如果安装速度慢可以采用镜像源

pip uninstall protobuf
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple protobuf==3.20.0

但是一顿操作之后,在pycharm上面还是报错

这个时候,网络上搜到的资料都没办法解决了

于是我继续摸索

发现虽然系统protobuf包虽然已经降级为3.20.0

但pycharm的protobuf包还是在最新的版本!

 

 于是将protobuf包在pycharm中重新卸载安装,选择3.20.0版本或更低

注意:如果此处没有版本的更多信息,无法安装其他版本

可以通过配置更多 镜像源解决! 

(新版本在python packages中的设置按钮中) (忽略我起的奇怪的名字XD)

安装完成

运行一下

芜湖搞定!bug清除!

 

 

  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值