2024年11月17日日曜日

platformioはVSCodeとpipでインストールしたcli版のバージョンを合わせると無駄なビルドを減らせる


ArduinoのプログラムをVSCodeで編集してbashからplatformioを呼び出してビルドする開発をしていると、下記の処理がVSCodeを開き直す度に呼び出された後にビルドがclean後のようにすべてのファイルに対して実施されているのに気づきました。
Tool Manager: Installing platformio/tool-scons @ ~4.40600.0
Unpacking [####################################] 100%
Tool Manager: tool-scons@4.40600.0 has been installed!
Tool Manager: Removing tool-scons @ 4.40801.0
Tool Manager: tool-scons@4.40801.0 has been removed!

platformioの自動ビルドを止める設定を無効にしても継続したので原因を探ったところ、python3のpipでインストールしたplatformioのバージョンとVSCodeのプラグインがインストールしたplatformioのバージョンが異なるのが原因と分かりました。

pip3版:6.1.13  bashから実行
pio --version
# PlatformIO Core, version 6.1.13
which pio
# /home/asuki/.local/bin/pio

VSCode版: 6.1.16 VSCodeからplatformio cliメニューを選択して表示された端末で実行
pio --version
# PlatformIO Core, version 6.1.16
which pio
# /home/asuki/.platformio/penv/bin/pio

VSCode版が記事を書いている時点で最新版の6.1.16な一方でpip版が古いままだったため、ビルド時に必要なプログラムに齟齬が生じて毎回関連プログラムの一部をインストールし直す処理が走り、それに合わせてビルドし直しが発生していました。

ということで、pip版のplatformioも最新にしました。
pip install -U platformio

バージョンを合わせたら関連プログラムのインストールし直しや不要なビルドのやり直しが無くなり、快適になりました。
VSCodeのplatformioプラグインはOSのpython3を使うのでpipと同じものを使ってくれているのかと思いましたが、違うと分かりました。

参考
platformio - pypi
platformio-vscode-ide

0 件のコメント :