Espressif社ESP32シリーズの開発環境esp-idfをv4.1にアップグレードしたのですが、途中でpythonの仮想環境を作るところで
ERROR: Can not perform a '--user' install. User site-packages are not visible in this virtualenv.
が発生するようになってしまいました。少し前まではpython環境はWindowsの場合であればAppData配下にインストールされていたはずですが、いつからか%USER_NAME%/.espressif/python_env配下に仮想環境を作るようになってしまったみたいで…。
対処方法としては、Windowsの場合は%USER_NAME%/.espressif/python_envディレクトリ直下にpip.iniファイルを作ってユーザ指定をスキップするとpipのユーザモード利用を回避できます。
[global]
user = false
これでesp-idf/install.batを起動するとpython環境でハマらずに必要な環境がそろいます。ただし、idf.pyを直接呼び出したい場合、以前書いたことのある*.pyファイルとpythonインタプリタとの関連付けをやり直す必要があります。関連付けの方法は書きましたが、これの3.番目の項目で指定すべきpythonは
%USER_NAME%/.espressif/python_env/idf4.1_py3.7_env/Scripts
になっておりますので…再指定しなおしました。・・・私これを協力会社さんあてにもレクチャーする必要があるのですが、こういう設定ってIT系専門職の方でないとかなりハードルが高いらしく手取り足取り教える羽目になります…またやんなきゃダメかなぁ。
不具合に関する追記
何でだか分かりませんが、v4.1, v4.2のesp-idfをそのまま使うと
%IDF_PATH%/install.bat
まではそれとなくうまくできているように見受けられるのに、idf.py buildを実行すると
The following Python requirements are not satisfied:
gdbgui>=0.13.2.0
というpythonパッケージのエラーが出ちゃいますね・・・。
本家のgithubでも報告が結構あるみたいですが、私の環境では
python -m pip install pygdbmi==0.9.0.2 gdbgui==0.13.2.0
と直接pipでパッケージをバージョン指定で取得してきたところOKになりました。