Armadilloフォーラム

Armadillo-IoT A6E ATDE9:VScodeによるコンテナ作成時のPythonライブラリインストールについて

h.shirakawa

2024年9月19日 15時19分

お世話になります。
①初めにArmadillo-X2にてコンテナの開発を行いました。
このコンテナにはrequirements.txtに定義した以下のPythonパッケージをインストールしており、期待通りの動作をしています。
numpy
scipy
pandas
statsmodels
scikit-learn
sklearn
tqdm
openpyxl
lightgbm

②続いてA6E用に同じ仕様でコンテナを作ろうとしましたが、requirements.txtに上記の内容を記載してswuファイルの作成をこころみたところ、
numpyのインストールにてエラーが発生しコンテナのビルドができませんでした。(エラー発生時のログは添付いたします)

③上記ライブラリ群を"apt install"にて追加するために、各項目を”phton3-***”に書き換えてpackages.txt記載し、ビルドをしたところlightgbm以外については成功しました。
lightgbmは"Unable to locate package python3-lightgbm"というエラーで終了しました。

④成功したパッケージはpackages.txtに残しておき、requirements.txtにlightgbmのみ記載して再度ビルドしましたが、失敗しました。
(numpyを再度インストールしようとして、②と同様のエラーが発生)

質問1:最終的にlightgbmを含めてコンテナのビルドを完了したいのですが、どのように進めればよいでしょうか?
質問2:A6EとX2について、コンテナビルド動作の違いは何に依存しているのでしょうか?

バージョンについては必要な項目をご指摘いただければ調べて記載いたしますのでお願いいたします。

以上、恐れ入りますがご回答・アドバイスいただけますと幸いです。

ファイル ファイルの説明
A6Eコンテナビルドエラー.txt
コメント

at_satoshi.ohta

2024年9月19日 18時15分

太田です。

お世話になっております。

動作の違いはこちらでも確認しました。

> 質問2:A6EとX2について、コンテナビルド動作の違いは何に依存しているのでしょうか?

はじめに質問2についてご回答させていただきます。
これはArmadillo-X2とA6EでそれぞれDocker hubのリポジトリから取得するdebianが違うためです。
Armadillo-X2はArm64v8のdebian、A6Eはarm32v7のdebianとなります。

> 質問1:最終的にlightgbmを含めてコンテナのビルドを完了したいのですが、どのように進めればよいでしょうか?

次に質問1についてですが、
下記の手順でビルドするとどうでしょうか?
ここでは、A6Eのpythonプロジェクトをmy_projectとします。

1. my_project/app/src/requirements.txtに書きを記述してください。

numpy
scipy
pandas
statsmodels
scikit-learn
sklearn
tqdm
openpyxl
lightgbm

2. my_prject/container/Dockerfileのpipを実行しているコマンドに下記のように「--index-url=https://www.piwheels.org/simple」を追加してください。

RUN python3 -m pip --no-cache-dir install --index-url=https://www.piwheels.org/simple -r requirements.txt

3. [Generate development swu]を実行してください。

これで、想定の動作ができるか確かめてみていただけますでしょうか?

よろしくお願いいたします。

h.shirakawa

2024年9月19日 18時58分

詳細に回答いただきありがとうございます。

ご教示いただいた内容にてビルドを開始いたしましたが、しばらく時間がかかりそうですので結果については改めてご報告差し上げます。

以上、取り急ぎお礼までに。

h.shirakawa

2024年9月19日 19時22分

先にご連絡頂いた内容ですが、無事にswuのビルドに成功いたしました。
ビルド時のログを添付いたします。

動作確認はまだですが、X2にてビルドしていたログ内容と似ているので恐らくうまくいったのではないかと思います。
明日動作確認結果をご報告差し上げて、問題なければ本件クローズとさせていただきます。

以上、ご対応いただきありがとうございました。

ファイル ファイルの説明
A6Eコンテナビルド成功.txt

at_satoshi.ohta

2024年9月20日 10時29分

太田です。

ログとご報告ありがとうございます。

今後ともよろしくお願いいたします。

h.shirakawa

2024年9月20日 10時55分

昨日はご対応いただきありがとうございました。

本日ビルドに成功したコンテナにて動作確認をしたところ、main.pyを起動した際に以下のエラーが発生して異常終了していました。
~~~~~~~~~~~~~
Traceback (most recent call last):
File "/vol_app/src/main.py", line 9, in
import pandas as pd
File "/usr/local/lib/python3.9/dist-packages/pandas/__init__.py", line 19, in
raise ImportError(
ImportError: Unable to import required dependencies:
numpy: Error importing numpy: you should not try to import numpy from
its source directory; please exit the numpy source tree, and relaunch
your python interpreter from there.
~~~~~~~~~~~~~

numpy関連の問題と見受けられたので調査中ですが、ライブラリインストール時に対応が必要な場合は対策にたどり着くまでに少し時間がかかりそうですので、もし何か思い当たるところがあればご教示いただけませんでしょうか?

以上、度々申し訳ありませんがよろしくお願いいたします。

h.shirakawa

2024年9月20日 11時40分

お世話になります。
先の件ですが、apt installを行うpackages.txtにlibopenblas-devを追加することで解決することができました。

引き続き確認進めます。
以上、取り急ぎご報告までに

h.shirakawa

2024年9月20日 16時47分

太田様

動作確認の結果、期待通りの動作となりましたので本件につきましてはクローズとさせていただきます。
一点、追加で手間取ったことがありましたので共有させていただきます。
・lightgbmのimport時にglibcのバージョンが合わないことでエラーが発生(GLIB2.32 not found)
→デフォルトではlightgbm4.5.0がインストールされますが、libc6のバージョンが2.31だったためと思われます。最終的にlightgbm==4.4.0を指定してインストールすることで正常動作となりました。

最後に、ご教示いただいた内容と当社で確認した内容を含めたrequirements.txtとpackages.txtの記載内容を共有させていただきます。
●requirements.txt
numpy
scipy
pandas
statsmodels
scikit-learn
sklearn
tqdm
openpyxl
lightgbm==4.4.0

●packages.txt
python3
python3-pip
libopenblas-dev

改めてこのたびはご対応いただきありがとうございました。

at_satoshi.ohta

2024年9月20日 16時53分

太田です。

ご報告ありがとうございます。とても助かります。
ご報告いただいた内容はこちらでも参考にさせていただきます。

今後ともどうぞよろしくお願いいたします。