「Apollo」class DescriptorBase(metaclass=DescriptorMetaclass)
背景
系統(tǒng):ubuntu 18.04
環(huán)境:apollo5.5,docker內(nèi)部
執(zhí)行代碼:python cyber.py
錯(cuò)誤內(nèi)容:class DescriptorBase(metaclass=DescriptorMetaclass)
解決方法
通過對(duì)比已編譯通過的代碼,應(yīng)該是python2.7庫(kù)有問題,忘了當(dāng)初是怎么修復(fù)的,想起來會(huì)補(bǔ)上來。下面是直接對(duì)照編譯通過的代碼來修改報(bào)錯(cuò)的descriptor.py文件
對(duì)報(bào)錯(cuò)的/home/apollo/.local/lib/python2.7/site-packages/google/protobuf/descriptor.py作以下修改:
在import處添加 import six
將第113行括號(hào)中的metaclass=DescriptorMetaclass修改為six.with_metaclass(DescriptorMetaclass)
再執(zhí)行python cyber.py就不會(huì)報(bào)錯(cuò)了
——————————————————————————————————————————————————-
按照上述步驟修改后如果出現(xiàn)如下錯(cuò)誤:
初步推斷應(yīng)該是版本的問題,通過和編譯運(yùn)行通過的版本對(duì)比,發(fā)現(xiàn)pb的版本不一致,對(duì)齊pb版本后就沒有該錯(cuò)誤了
我使用的pb版本是:protobuf==3.17.3
總結(jié)
以上是生活随笔為你收集整理的「Apollo」class DescriptorBase(metaclass=DescriptorMetaclass)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 建行企业银行客户号是什么
- 下一篇: 「Swift」笔记第二章 Basic O