构建Hi3861时报错解决方案
头像 宋你一朵小红花 2020-11-13 13:09:04    发布
3301 浏览 29 点赞 16 收藏

今天刚刚下载了Hi3861的代码code1.0,按照 环境要求配置好,然后执行构建的时候报错:ImportError: cannot import name 'common_env' from 'scripts'

具体如下


Traceback (most recent call last):

  File "/home/peter/.local/lib/python3.7/site-packages/SCons/Script/Main.py", line 1391, in main

    _exec_main(parser, values)

  File "/home/peter/.local/lib/python3.7/site-packages/SCons/Script/Main.py", line 1355, in _exec_main

    _main(parser)

  File "/home/peter/.local/lib/python3.7/site-packages/SCons/Script/Main.py", line 1029, in _main

    SCons.Script._SConscript._SConscript(fs, script)

  File "/home/peter/.local/lib/python3.7/site-packages/SCons/Script/SConscript.py", line 287, in _SConscript

    exec(compile(scriptdata, scriptname, 'exec'), call_stack[-1].globals)

  File "/home/peter/work/HarmonyOS/code/vendor/hisi/hi3861/hi3861/SConstruct", line 31, in <module>

    from scripts import common_env

ImportError: cannot import name 'common_env' from 'scripts' (/root/anaconda3/lib/python3.7/site-packages/scripts/__init__.py)


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "/home/peter/.local/bin/scons", line 8, in <module>

    sys.exit(main())

  File "/home/peter/.local/lib/python3.7/site-packages/SCons/Script/Main.py", line 1416, in main

    SCons.Script._SConscript.SConscript_exception()

  File "/home/peter/.local/lib/python3.7/site-packages/SCons/Script/SConscript.py", line 349, in SConscript_exception

    stack = traceback.extract_tb(tb)

  File "/root/anaconda3/lib/python3.7/traceback.py", line 72, in extract_tb

    return StackSummary.extract(walk_tb(tb), limit=limit)

  File "/root/anaconda3/lib/python3.7/traceback.py", line 363, in extract

    f.line

  File "/root/anaconda3/lib/python3.7/traceback.py", line 285, in line

    self._line = linecache.getline(self.filename, self.lineno).strip()

  File "/root/anaconda3/lib/python3.7/linecache.py", line 16, in getline

    lines = getlines(filename, module_globals)

  File "/root/anaconda3/lib/python3.7/linecache.py", line 47, in getlines

    return updatecache(filename, module_globals)

  File "/root/anaconda3/lib/python3.7/linecache.py", line 137, in updatecache

    lines = fp.readlines()

  File "/root/anaconda3/lib/python3.7/codecs.py", line 322, in decode

    (result, consumed) = self._buffer_decode(data, self.errors, final)

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xca in position 739: invalid continuation byte
复制

打开构建脚本一看,原来是找不到commen_env.py模块,该python文件放在 code/vendor/hisi/hi3861/hi3861/build/scripts/ 目录下,构建脚本是 vendor/hisi/hi3861/hi3861/SConstruct,打开发现问题:


sys.path.append(os.path.join(os.getcwd(), 'build'))

print('------------------',os.getcwd())

print(sys.path)

from scripts import common_env

from scripts import scons_utils

from scripts import scons_app
复制

代码中已经把 build目录添加到sys路径里面了,但是由于scripts目录太过常见,添加的路径太靠后,导致python找到了错误的scripts文件夹(/root/anaconda3/lib/python3.7/site-packages/scripts),解决方法很简单:把append修改为insert即可:


sys.path.insert(0,os.path.join(os.getcwd(), 'build'))

print('------------------',os.getcwd())

print(sys.path)

from scripts import common_env

from scripts import scons_utils


©本站发布的所有内容,包括但不限于文字、图片、音频、视频、图表、标志、标识、广告、商标、商号、域名、软件、程序等,除特别标明外,均来源于网络或用户投稿,版权归原作者或原出处所有。我们致力于保护原作者版权,若涉及版权问题,请及时联系我们进行处理。
分类
其它
头像

宋你一朵小红花

我还没有写个人简介......

881

帖子

0

提问

1679

粉丝

关注
热门推荐
地址:北京市朝阳区北三环东路三元桥曙光西里甲1号第三置业A座1508室 商务内容合作QQ:2291221 电话:13391790444或(010)62178877
版权所有:电脑商情信息服务集团 北京赢邦策略咨询有限责任公司
声明:本媒体部分图片、文章来源于网络,版权归原作者所有,我司致力于保护作者版权,如有侵权,请与我司联系删除
京ICP备:2022009079号-2
京公网安备:11010502051901号
ICP证:京B2-20230255