DataWorks这个是什么问题呀?typeerror:不能直接创建描述符。如果此调用来自_pb2.py文件,则您生成的代码已过期,必须使用protoc>=3.19.0重新生成。如果您不能立即重新生成protos,则其他一些可能的解决方法是:1。将protobuf软件包降级至3.20.x或更低。2.设置PROTOCOL_BUFFERS_PYTHON_ECTION=PYTHON(但这将使用纯PYTHON解析,速度会慢得多)。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).
这个错误信息是因为你在使用Python的protobuf库时,使用的版本过低导致的。protobuf库是一个用于序列化结构化数据的库,它提供了一种方法来定义和创建复杂的数据结构,然后通过二进制格式在网络中发送这些数据结构。
解决这个问题的方法有两个:
升级你的protobuf库:你可以尝试升级你的protobuf库到最新的版本,这个版本应该包含了修复这个问题的代码。你可以使用pip或者conda来升级你的protobuf库。
使用旧版本的protobuf库:如果你无法升级你的protobuf库,你可以尝试使用旧版本的protobuf库。但是这个选项可能会导致你的程序在某些方面变得不那么高效。
该问题是由Protobuf Python库版本冲突引起的。在安装Protobuf Python库的过程中,有时会与旧版的Python编译器产生冲突,导致不能直接创建描述符,进而引发此错误消息。
解决方法如下:
PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python
环境变量。这样可以使Protobuf使用纯Python解析,虽然速度会变慢,但可以暂时解决此问题。版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。