完整报错如下:
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清除!