转:ImportError: cannot import name ‘_counter‘ from ‘Crypto.Util‘ 问题解决记录

问题: 

执行 hpm dist 编译的时候报错:

FAILED: obj/vendor/hisi/hi3861/hi3861/run_wifiiot_scons_build_ext_components.txt 
python ../../build/lite/build_ext_components.py --path=../../vendor/hisi/hi3861/hi3861 --command=sh\ hm_build.sh
/usr/lib/scons/SCons/Defaults.py:213: SyntaxWarning: "is not" with a literal. Did you mean "!="?
  if len(operation_list) is not 2:
/usr/lib/python3/dist-packages/Crypto/Random/Fortuna/FortunaGenerator.py:28: SyntaxWarning: "is" with a literal. Did you mean "=="?
  if sys.version_info[0] is 2 and  sys.version_info[1] is 1:
/usr/lib/python3/dist-packages/Crypto/Random/Fortuna/FortunaGenerator.py:28: SyntaxWarning: "is" with a literal. Did you mean "=="?
  if sys.version_info[0] is 2 and  sys.version_info[1] is 1:
Traceback (most recent call last):
  File "/usr/lib/scons/SCons/Script/Main.py", line 1376, in main
    _exec_main(parser, values)
  File "/usr/lib/scons/SCons/Script/Main.py", line 1339, in _exec_main
    _main(parser)
  File "/usr/lib/scons/SCons/Script/Main.py", line 1006, in _main
    SCons.Script._SConscript._SConscript(fs, script)
  File "/usr/lib/scons/SCons/Script/SConscript.py", line 255, in _SConscript
    exec(compile(_file_.read(), _file_.name, 'exec'),
  File "/home/pjw/HarmonyOS/project/vendor/hisi/hi3861/hi3861/SConstruct", line 34, in <module>
    from scripts import pkt_builder
  File "/home/pjw/HarmonyOS/project/vendor/hisi/hi3861/hi3861/build/scripts/pkt_builder.py", line 24, in <module>
    import make_upg_file as MAKE_IMAGE
  File "/home/pjw/HarmonyOS/project/vendor/hisi/hi3861/hi3861/build/scripts/make_upg_file.py", line 30, in <module>
    from Crypto.PublicKey import RSA
  File "/usr/lib/python3/dist-packages/Crypto/PublicKey/RSA.py", line 78, in <module>
    from Crypto import Random
  File "/usr/lib/python3/dist-packages/Crypto/Random/__init__.py", line 29, in <module>
    from Crypto.Random import _UserFriendlyRNG
  File "/usr/lib/python3/dist-packages/Crypto/Random/_UserFriendlyRNG.py", line 38, in <module>
    from Crypto.Random.Fortuna import FortunaAccumulator
  File "/usr/lib/python3/dist-packages/Crypto/Random/Fortuna/FortunaAccumulator.py", line 39, in <module>
    from . import FortunaGenerator
  File "/usr/lib/python3/dist-packages/Crypto/Random/Fortuna/FortunaGenerator.py", line 35, in <module>
    from Crypto.Util import Counter
  File "/usr/lib/python3/dist-packages/Crypto/Util/Counter.py", line 59, in <module>
    from Crypto.Util import _counter
ImportError: cannot import name '_counter' from 'Crypto.Util' (/usr/lib/python3/dist-packages/Crypto/Util/__init__.py)
 
During handling of the above exception, another exception occurred:
 
Traceback (most recent call last):
  File "/usr/bin/scons", line 201, in <module>
    SCons.Script.main()
  File "/usr/lib/scons/SCons/Script/Main.py", line 1401, in main
    SCons.Script._SConscript.SConscript_exception()
  File "/usr/lib/scons/SCons/Script/SConscript.py", line 319, in SConscript_exception
    stack = traceback.extract_tb(tb)
  File "/usr/lib/python3.8/traceback.py", line 72, in extract_tb
    return StackSummary.extract(walk_tb(tb), limit=limit)
  File "/usr/lib/python3.8/traceback.py", line 366, in extract
    f.line
  File "/usr/lib/python3.8/traceback.py", line 288, in line
    self._line = linecache.getline(self.filename, self.lineno).strip()
  File "/usr/lib/python3.8/linecache.py", line 16, in getline
    lines = getlines(filename, module_globals)
  File "/usr/lib/python3.8/linecache.py", line 47, in getlines
    return updatecache(filename, module_globals)
  File "/usr/lib/python3.8/linecache.py", line 137, in updatecache
    lines = fp.readlines()
  File "/usr/lib/python3.8/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 699: invalid continuation byte
Traceback (most recent call last):
  File "../../build/lite/build_ext_components.py", line 64, in <module>
    sys.exit(main())
  File "../../build/lite/build_ext_components.py", line 58, in main
    cmd_exec(args.command)
  File "../../build/lite/build_ext_components.py", line 32, in cmd_exec
    raise Exception("{} failed, return code is {}".format(cmd, ret_code))
Exception: ['sh', 'hm_build.sh'] failed, return code is 1
ninja: build stopped: subcommand failed.
you can check build log in /home/pjw/HarmonyOS/project/out/BearPi-HM_Nano/build.log
/home/pjw/HarmonyOS/tools/ninja/ninja -w dupbuild=warn -C /home/pjw/HarmonyOS/project/out/BearPi-HM_Nano failed, return code is 1
usage: 
  python build.py ipcamera_hi3516dv300
  python build.py ipcamera_hi3518ev300
  python build.py wifiiot
 
positional arguments:
  product               Name of the product
 
optional arguments:
  -h, --help            show this help message and exit
  -b BUILD_TYPE, --build_type BUILD_TYPE
                        release or debug version.
  -t [TEST [TEST ...]], --test [TEST [TEST ...]]
                        Compile test suit
  -n, --ndk             Compile ndk

原因:

缺少了包文件

解决:

sudo pip3 install setuptools kconfiglib pycryptodome ecdsa

可能之前执行这个命令有些包没安装成功,再次安装了这些就好了,没注意看是缺少了哪个包。

后续分析:

根据错误缺少‘Crypto.Util‘ 来看,是缺少了PyCryptodome库,PyCryptodome是PyCrypto(Crypto算法库)的一个分支。

sudo pip3 install pycryptodome

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值