windows環境に構築したarduino IDEでesp32を動かすには以前にご案内した通リですがchromebookでは少し事情が異なりました。
chromebookにLinux環境を構築すると既にpython3がインストールされています。
ところがarduinoIDEでesp32を使おうとするとpythonのパスが見つからないというエラーが出ます。
実行可能なファイルが見つからない
arduino IDEの環境設定からボードを追加し、esp32ライブラリをインストールすることでesp32を動かせたのですがLinuxで同様の手順では動いてくれません。
exec: “python”: executable file not found in $PATH
どうもpythonファイルが見つからないと言ってるもよう…
espresslf のフォーラムには同様の現象で困ってる方が多く$ PATHに/ usr / bin / python を追加してもダメらしいです。
また最新のpythonはpythonコマンドでは動かない?とかの情報も…
以前のpythonはpython3系にインストールし直すようにとも…
これでOKという情報は見つからなかったのですが何度かLinux環境を削除したり再構築したりしているうちに解決したので共有したいと思います。
arduinoIDEにはpython環境が必要?
arduinoは基本 C++言語でプログラム(スケッチ)するのでpython環境は必要ない?と思っていたのですが、LinuxにarduinoIDEを入れてesp32の環境を構築したらエラーということでpython環境も必要なんですね。
ところがchromebookにLinux環境を構築すると既にpython3系がインストールされています。
でも、パスが見つからないというエラーが出るのも事実で色々と手を尽くしたのですが解決には至りませんでした。
でも一連の作業の中で判ったこと—arduinoはpython2系でもpython3系でもいいということ–これが収穫です。
【2024/03 追記】
先日Linux環境を削除し新たにLinuxをインストールしたところここに記載の方法ではarduinoIDEが使えなくなりました。
Google Cloud : Python 2.7 は、2024 年 1 月 31 日にサポートが終了しました
既にインストールしているPython2xは引き続き使用出来ますが新たなインストールは出来なくなりました。
arduino IDEはpython2xでpython Serialを実行するようですので今までの方法—sudo apt-get install python-serial ではインストール出来ません。
というか…
今度の大きな変更点の一つにセキュリティ強化があるようで、本体に影響を及ぼす可能性のある全てのインストールが拒否されます。
エラーにPEP668という文言があると思うのでpip install –break-system-packages pyserialでインストールすることが出来ます。
pep668についてはこちらを御覧ください。
またarduinoIDEでesp32を使えるようにするため環境設定で追加ボードのURLを設定しますがURLが変更されました。
新しいURLはhttps://espressif.github.io/arduino-esp32/package_esp32_index.jsonとなります。
シリアルポート設定
Linux環境のarduinoIDEではシリアルポートを特に設定しなくてもボードをPCに接続するとLinuxに接続しますか?と聞いてくるのでOKとすればシリアルポートが使えますが、esp32の環境では特に設定する必要があります。
設定はターミナルに
sudo apt-get install python-serial
と入力することで設定出来ます。
ここでpython2系のパッケージを読み込んでいますがpythonのパスが見つからないというエラーはこのことだったのかも知れません。
python-serialをインストールすることでエラーは出なくなり、書き込みが出来るようになりました。
そもそもarduinoIDEでesp32が使えない?
arduino IDEでesp32を使うためにはarduinoの環境設定でまずesp32を使えるようにしておく必要があります。
でもLinuxでarduinoを使えるようにした後でesp32の設定をしても構いません。
esp32の設定方法はこちらに記しています。
arduinoの日本語環境
先ずLinux環境にfcitx-mozcをインストールして日本語環境を設定しておく必要があります。
fcitx-mozcの設定
arduinoIDEのFile ⇒ Preferences と進みEditor language から日本語を選択、OKで閉じます。
次にFile ⇒ Quit でarduinoIDEを終了させ再起動することで日本語表示にすることが出来ます。
chromebookでesp32 まとめ
python-serial…..とコマンドを打つのは簡単なのですが、Linux環境のarduino IDEでesp32を動かすための情報収集にかなりの時間と労力を費やしました。
海外の方も苦労してるみたいで解決策は「pythonを入れる」というのが多いように思います。
カズもpyton3を入れて対応していましたが、シリアルポート設定でpython2系のパッケージを入れているのでLinux環境の再構築の際にarduinoIDEを入れ、esp32の環境設定をしてエラーを確認した後にpyton-serialを入れてみたところエラーが出なくなりました。
「pythonのパスが見つからない」というエラーが出たら試して見る価値があるように思います。
【2022/02 追記】
Linux-Debianにも慣れてきて、当初はいろいろとインストールしていたので一旦、Linuxを削除して再インストールをしたところ、esp32では「serialの名前が違います」とか「パスが見つかりません」と表示されるようになりました。
そこでpythonを入れたりpython3を入れたりとしたのですが状況が改善しません。
パスが見つからない
当初、ここで記載しているように「python-serial」をインストールすることで対応したのですが、今度は「python-serialが見つかりません」と表示されるようになりました。
ファイルのリンクがなくなった?
そこで「pyserial」をインストールしたのですが状況は改善しません。
調べると「pyserial」はpython3系でインストールされていることが判明しました。
pythonの実行は?
随分ハマってしまいましたが
「pythonはpython2から実行されます」
つまり、徐々にpython3に移行させようということですね。
ということで再度Linuxを入れ直しpython3をインストールしました。
エラーが出る?
当然のことながらarduinoIDEでesp32を実行すると「パスが見つかりません」と表示されます。
そこで今度はpythonでpython3を実行させるという方法を取ったところエラーがなくなりましたので共有したいと思います。
実行の手順は次の通リです。
“exec: “python”: executable file not found in $PATH
① python3をインストールする。
sudo apt install python3 pip
python3 と pip 環境がインストールされます。
② pyserialをインストールする
sudo pip install pyserial
③ pythonをpython3で実行させる
sudo apt install python-is-python3
pythonバージョンを確認してみます。
これでarduinoIDEでesp32を使えるようになります。
【2024/03 追記】
既にpython2xが廃止されたのでこの方法は使えなくなっています。
python3仮想環境でarduinoやesp32のシリアル通信をする
段々と利用環境が狭まり「本来の使い方をせよ!」ってな感じになってきましたね。^^;
ということでchromebookのLinux環境を完全に削除(パワーウオッシュ)後、新たにLinux 環境を作成、Python3仮想環境でarduinoIDEをインストールしました。
シリアル通信をする方法も記述しています。