nrfutilでiteritemsが無いと言われる
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