先上结论:在香橙派昇腾310b和启智社区昇腾910环境下有这个报错,在启智社区昇腾910b下没有这个报错。所以最终这个报错是采用换机器的方法解决的。
报错:cannot import name 'CommonUtility' from 'tbe.tikcpp.compile_op'
python3 -c "from tbe.tikcpp.compile_op import CommonUtility; print('Import successful')"
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: cannot import name 'CommonUtility' from 'tbe.tikcpp.compile_op' (/usr/local/Ascend/ascend-toolkit/8.0.RC1/python/site-packages/tbe/tikcpp/compile_op.py)
当时是昇腾Ascend C算子编译的时候报错,为了方便调试,简化调试语句为:
python3 -c "from tbe.tikcpp.compile_op import CommonUtility; print('Import successful')"
据说可以用环境变量指定试试
export PYTHONPATH=/usr/local/Ascend/ascend-toolkit/8.0.RC1/python/site-packages:$PYTHONPATH
这个我没试,应该不管用。
最终手写了一个CommonUtility顶上去,找到/usr/local/Ascend/ascend-toolkit/8.0.RC1/python/site-packages/tbe/tikcpp/compile_op.py文件,在里面添上CommonUtility类:
class CommonUtility:
@staticmethod
def log_info(msg):
print(f"[INFO] {msg}")
这样可以跳过CommonUtility的报错,但是又出现新的报错:
cannot import name 'AscendCLogLevel' from 'tbe.tikcpp.compile_op'
也就是全都缺呗,那就真没办法了啊,太多了不可能一个个写啊。
最后就放弃了,改到昇腾910b环境下,就没有再报这个错。