【ESP32】ESP-IDFのidf.pyがエラーで使えないときの対処法【Python】

ESP32

目次

記事の目的

Pythonをやってこなかったためエラーの意味が分からず苦戦したのでメモ。

注意すること

Windowsの環境変数を追加するので、不具合が生じるかもしれません。PythonやOSに詳しくないので責任は持てません。不具合が出たらすぐ追加報告します。

私が購入したのは上側の15*2Pinの方ではなく下側の19*2Pinの方なので注意。


いわゆるNodeMCU-32Sと呼ばれる互換モジュールですね。

上側はDOIT ESP32 DEVKIT V1と呼ばれるもので、見た目が似ていますがPin配置が違います。

Amazon | Rasbee ESP-WROOM-32S 開発ボード デュアルコア 2.4 GHz WiFi + Bluetoothデュアルモード対応 ESP-WROOM-32 内臓 マイクロコントローラ | Rasbee | マザーボード 通販
Rasbee ESP-WROOM-32S 開発ボード デュアルコア 2.4 GHz WiFi + Bluetoothデュアルモード対応 ESP-WROOM-32 内臓 マイクロコントローラがマザーボードストアでいつでもお買い得。当日お急ぎ便対象商品は、当日お届け可能です。アマゾン配送商品は、通常配送無料(一部除く)。
Amazon.co.jp: waves NodeMCU-32 開発ボード ESP32 ESP-WROOM-32 WiFi Bluetooth : パソコン・周辺機器
Amazon.co.jp: waves NodeMCU-32 開発ボード ESP32 ESP-WROOM-32 WiFi Bluetooth : パソコン・周辺機器

実際のエラー内容

C:\Users\hoge\esp\hello_world>idf.py menuconfig
UnicodeDecodeError: 'cp932' codec can't decode byte 0x87 in position 84: illegal multibyte sequence

意味

WindowsにインストールしたPythonは、初期でOpenした際のファイル文字コードがcp932になるみたい。

Openする時にUTF8をきちんと指定してくれていればよいが、していないとこんなエラーが起きることがある?

確認すること

文字列とバイトの変換エンコードの確認

>>> import sys
>>> sys.getdefaultencoding()
'utf-8'

テキストファイルの読み込み時のエンコードの確認

>>> import locale
>>> locale.getpreferredencoding()
'cp932'

ここをutf-8にしないとダメっぽい。

やること

環境変数に PYTHONUTF8 =1を追加する

これだけ。この後
idf.py menuconfig
をすると
idf.py fullclean
をまずやってくれと言われるのでやりましょう。
その後
idf.py menuconfig
をして下の画面が出れば無事Config表示成功です。

後は公式サイトや他サイトを見て使いましょう。
正直Windows環境で使うのは面倒だ…

コメント

タイトルとURLをコピーしました