Armadilloフォーラム

A6Eへpython3のモジュールインストール

uen2825

2023年3月7日 9時50分

お世話になります。
A6Eを使用してpython3を動かしています。
モジュール(pyserial、cv2等)のインストールを行ないたいのですが方法がわかりません。
ご教授いただければ幸いです。
よろしくお願い致します。

コメント

アットマークテクノの古賀です。

uen2825さん:
>A6Eを使用してpython3を動かしています。
>モジュール(pyserial、cv2等)のインストールを行ないたいのですが方法がわかりません。
>ご教授いただければ幸いです。

確認ですが、python3 は、どうやって動かしていらっしゃるでしょうか?
以下のどれなのかを教えて下さいませ。

a.) 付属のゲートウェイコンテナにインストールされている python3 を、ゲートフェイコンテナ上で実行

b.) Base OS に python3 をインストールして、直接 Base OS 上で実行

c.) それ以外

アットマークテクノ 古賀様
ご返信ありがとうございます。
python3は下記のとおり、ゲートウェイコンテナ上で試験しております
> a.) 付属のゲートウェイコンテナにインストールされている python3 を、ゲートウェイコンテナ上で実行

アットマークテクノの古賀です。

uen2825さん(2023年3月7日 14時52分):
>python3は下記のとおり、ゲートウェイコンテナ上で試験しております
>>a.) 付属のゲートウェイコンテナにインストールされている python3 を、ゲートウェイコンテナ上で実行

了解しました。ということであれば、フォーラムの、こちらのスレッドも参考になるかと思います:
 https://armadillo.atmark-techno.com/forum/armadillo/13638#comment-12296

Python のパッケージを追加でインストールする場合は、ゲートウェイコンテナに /bin/sh を実行させてシェルを動かし、シェル内で pip install や apk add を実行すればよいです。pyserial と cv2 については、Alpien Linux のパッケージ(apk)が提供されていますので、apk add でインストールするのがよいかと思います:
 https://pkgs.alpinelinux.org/package/v3.17/community/armv7/py3-pyserial
 https://pkgs.alpinelinux.org/package/v3.17/community/armv7/py3-opencv
 https://pkgs.alpinelinux.org/package/v3.17/community/armv7/opencv

ただし、インストールにより変更されたコンテナ内容をイメージに保存しないと、再起動時に変更が失われてしまいます。そのため、インストールする前に 'podman_switch_storage --disk' を実行してください:
 https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-base-os-dev…

これを行ったうえで、インストール後に podman comit を実行して、インストールによる変更内容をイメージに保存して下さい。「Base OS 開発ガイド」では、以下で説明しています:

 podman コンテナの保存
 https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-base-os-dev…

# podman commit コマンドの仕様は、podman のリファレンスをご覧ください:
#  https://docs.podman.io/en/latest/markdown/podman-commit.1.html

なお、podman commit によりコンテナイメージを保存する際、イメージ名を a6e-gw-container から変更するのが良いでしょう。そうしておけば、今後、ゲートウェイコンテナを弊社でアップデートした際に、ゲートウェイコンテナのアップデータを適用しても問題が起きる心配がありません。

アットマークテクノの古賀です。

ごめんなさい。ゲートウェイコンテナの /bin/sh で apk add を実行する際、以下のコマンドを実行しないといけないことを忘れていました:

gpioset gpiochip3 18=1

古賀:
>Python のパッケージを追加でインストールする場合は、ゲートウェイコンテナに /bin/sh を実行させてシェルを動かし、シェル内で pip install や apk add を実行すればよいです。pyserial と cv2 については、Alpien Linux のパッケージ(apk)が提供されていますので、apk add でインストールするのがよいかと思います:
> https://pkgs.alpinelinux.org/package/v3.17/community/armv7/py3-pyserial
> https://pkgs.alpinelinux.org/package/v3.17/community/armv7/py3-opencv
> https://pkgs.alpinelinux.org/package/v3.17/community/armv7/opencv

この件については、フォーラムの、以下のスレッドをご覧ください:
 https://armadillo.atmark-techno.com/forum/armadillo/13924

アットマークテクノ 古賀様
教えていただいた手順でインストールが出来ました。
gpioset gpiochip3 18=1
podman exec -it a6e-gw-container /bin/sh
apk add py3-pyserial
apk add py3-opencv

ありがとうございました。

アットマークテクノ 古賀様

シェルから起動しpython3を立ち上げた場合、import serialもimport cv2も動作します
armadillo:~# podman exec -it a6e-gw-container /bin/sh
/ # python3

コンテナを起動後python3を立ち上げた場合は import serialもimport cv2とも無効となるのは正常な動作なのでしょうか
armadillo:~# podman_start a6e-gw-container
armadillo:~# python3

変な事を言っている様でしたら申し訳ございません。

アットマークテクノの古賀です。

uen2825さん:
>シェルから起動しpython3を立ち上げた場合、import serialもimport cv2も動作します
>armadillo:~# podman exec -it a6e-gw-container /bin/sh
>/ # python3

この時は、コンテナ上のシェルから、コンテナ内にインストールされた python3 を実行していますので、コンテナ内にインストールされた python パッケージが見えますね。

>コンテナを起動後python3を立ち上げた場合は import serialもimport cv2とも無効となるのは正常な動作なのでしょうか
>armadillo:~# podman_start a6e-gw-container
>armadillo:~# python3

この時は、Base OS 上で直接 python3 を実行していますので、コンテナ内のパッケージは見えません。これは正常な動作です。
コマンドプロンプトが、Base OS 上の時は先頭に 'armadillo:' が付いていて、コンテナ内の場合は付いていませんので、それで区別できるかと思います。

>変な事を言っている様でしたら申し訳ございません。

あ、いえいえ。慣れないと、ちょっと分かりづらいですよね。