Armadilloフォーラム

Armadillo-640 gRPCインストールエラー

ibt_oyabe

2024年4月24日 21時29分

Armadillo-640(ABOS、SDブート)PythonでgRPC通信を行うソフトウェアの開発を行っています。
現在セットアップを行っていますが、gRPCのインストールでエラーが発生しています。
対処方法のご教授をお願いします。

[実行コマンド]
pip3 install grpcio==1.39.0 grpcio-tools==1.39.0 protobuf==3.19.4

error: externally-managed-environment

※実際の画面イメージを添付します

なお、Pythonモジュールのインストールは完了しております。
cd
armadillo:/# apk update && apk upgrade
armadillo:/# apk add python3
armadillo:/# apk add py3-pip
armadillo:/# apk add py3-pandas
armadillo:/# apk add py3-requests
armadillo:/# apk add py3-scipy

ファイル ファイルの説明
gRPCインストールエラー.png gRPCインストール実行時のエラー
コメント

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

ibt_oyabeさん:
>Armadillo-640(ABOS、SDブート)PythonでgRPC通信を行うソフトウェアの開発を行っています。
>現在セットアップを行っていますが、gRPCのインストールでエラーが発生しています。
>対処方法のご教授をお願いします。
>
>[実行コマンド]
>pip3 install grpcio==1.39.0 grpcio-tools==1.39.0 protobuf==3.19.4
>
>error: externally-managed-environment
>
>※実際の画面イメージを添付します

このエラーメッセージの通りで、pip3 を使わずに、apk を使って apk パッケージをインストールしろ、と言っているようです。
添付して頂いた画像を見ると、上記エラーメッセージに続く詳細メッセージには、次のようになっています:

This environment is externally managed
 
The system-wide python installation should be maintained using the system
package manager (apk) only.
 
If the package in question is not packaged already (and hence installable via 
"apk add py3-somepackage"), please consider installing it inside a virtual 
environment, e.g:
...

Alpine Linux のパッケージに py3-grpcio がないか検索してみたところ、ありますね:
 https://pkgs.alpinelinux.org/package/v3.19/community/armhf/grpc

ということで、

armadillo:/# apk add py3-grpcio

を実行してみてください。

ご回答ありがとうございます。
>

> armadillo:/# apk add py3-grpcio
> 

> を実行してみてください。
早速試してみました。
無事にインストールは開始したのですが、「No space left on device」が表示され失敗してしまいます。
dfコマンドを実行し空き容量を確認してましたが、問題無さそうに見えます。
たびたびで大変申し訳ございませんが、フォローをお願いできますでしょうか。

ファイル ファイルの説明
teraterm.txt gRPCインストールログ

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

ibt_oyabeさん:
>ご回答ありがとうございます。

armadillo:/# apk add py3-grpcio

>>を実行してみてください。
>早速試してみました。
>無事にインストールは開始したのですが、「No space left on device」が表示され失敗してしまいます。
>dfコマンドを実行し空き容量を確認してましたが、問題無さそうに見えます。

添付して頂いた内容を見ると、/ の使用率が 100% になっており、空き容量が無い状況ですね。

[2024-04-25 09:28:14.631]  11% ?????                                       (60/64) Installing icu-data-en (74.1-r0)
[2024-04-25 09:28:14.631]  12% ?????                                       ERROR: Failed to create usr/share/icu/74.1/icudt74l.dat: No space left on device
[2024-04-25 09:28:14.816] ERROR: icu-data-en-74.1-r0: No space left on device
...
[2024-04-25 09:34:00.084] armadillo:~# df
[2024-04-25 09:34:03.910] Filesystem           1K-blocks      Used Available Use% Mounted on
[2024-04-25 09:34:03.910] /dev/root               277623    172679     85488  67% /live/rootfs
[2024-04-25 09:34:03.910] devtmpfs                 10240         0     10240   0% /dev
[2024-04-25 09:34:03.910] tmpfs                   101580       904    100676   1% /run
[2024-04-25 09:34:03.910] shm                     253944        56    253888   0% /dev/shm
[2024-04-25 09:34:03.910] /dev/mmcblk1p3           42851      2173     37094   6% /var/log
[2024-04-25 09:34:03.910] tmpfs                   253944         0    253944   0% /tmp
[2024-04-25 09:34:03.910] /dev/mmcblk1p5        30276096   1013252  28818044   3% /var/lib/containers/storage_readonly
[2024-04-25 09:34:03.910] /dev/mmcblk1p5        30276096   1013252  28818044   3% /var/app/rollback/volumes
[2024-04-25 09:34:03.910] /dev/mmcblk1p5        30276096   1013252  28818044   3% /var/app/volumes
[2024-04-25 09:34:03.910] /dev/mmcblk1p5        30276096   1013252  28818044   3% /var/tmp
[2024-04-25 09:34:03.910] /dev/mmcblk1p5        30276096   1013252  28818044   3% /var/lib/containers/storage
[2024-04-25 09:34:03.910] none                    253944    253944         0 100% /live
[2024-04-25 09:34:03.910] none                    253944    253944         0 100% /
...

Base OS に直接パッケージをインストールすることは推奨していませんので、Alpine コンテナを作って、コンテナにパッケージをインストールして頂くのが良いです。

取り急ぎ試す、ということであれば、/var/app/rollback/volumes/ 配下にディレクトリを作り、そこに、最初に添付して頂いた画像のエラーメッセージにあるように 'python -m venv' で Python の仮想環境を作ってインストールしてみてください。

返信が遅くなり、申し訳ございませんでした。

ご指摘の通り、Armadillo Base OS上に直接パッケージをインストールしようとしていました。
Debianコンテナを作って、そのコンテナ内でインストールするようにしたら、問題無くできました。

いろいろご教授いただき、ありがとうございました。