raytency’s diary

画像とテーブルはそのうち上げます

nrfutilでiteritemsが無いと言われる

MacBMPの環境構築して

AttributeError: 'dict' object has no attribute 'iteritems'

と出たらPython2のスクリプトを3で動かそうとしているから、python2で動かしましょうという話。

PCの再セットアップしていたら、nrfutilを使おうとしてエラーがでた。

|===============================================================|
|##      ##    ###    ########  ##    ## #### ##    ##  ######  |
|##  ##  ##   ## ##   ##     ## ###   ##  ##  ###   ## ##    ## |
|##  ##  ##  ##   ##  ##     ## ####  ##  ##  ####  ## ##       |
|##  ##  ## ##     ## ########  ## ## ##  ##  ## ## ## ##   ####|
|##  ##  ## ######### ##   ##   ##  ####  ##  ##  #### ##    ## |
|##  ##  ## ##     ## ##    ##  ##   ###  ##  ##   ### ##    ## |
| ###  ###  ##     ## ##     ## ##    ## #### ##    ##  ######  |
|===============================================================|
|You are not providing a signature key, which means the DFU     |
|files will not be signed, and are vulnerable to tampering.     |
|This is only compatible with a signature-less bootloader and is|
|not suitable for production environments.                      |
|===============================================================|

Traceback (most recent call last):
  File "/usr/local/bin/nrfutil", line 10, in <module>
    sys.exit(cli())
  File "/usr/local/lib/python3.7/site-packages/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python3.7/site-packages/click/core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python3.7/site-packages/click/core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python3.7/site-packages/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python3.7/site-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/nordicsemi/__main__.py", line 867, in generate
    package.generate_package(zipfile_path)
  File "/usr/local/lib/python3.7/site-packages/nordicsemi/dfu/package.py", line 403, in generate_package
    for key, firmware_data in self.firmwares_data.iteritems():
AttributeError: 'dict' object has no attribute 'iteritems'
make[1]: *** [helix_ble_only_left_froggy.zip] Error 1
make: *** [helix_ble/only_left:froggy:nrfutil] Error 1
Make finished with errors

どうやらiteritems()はpython2系のメソッドらしいので、python2で動くようにしましょう。 私の場合、brewでpython2を入れ直したら改善した

brew install python2