カテゴリー
Alpineコンテナでpip経由でxlsx2csvをインストールしたら「error: externally-managed-environment」出たときの対処法
※ 当ページには【広告/PR】を含む場合があります。
2024/08/24
$ docker compose build
#...中略
=> ERROR [app 5/6] RUN pip install xlsx2csv
------
> [app 5/6] RUN pip install xlsx2csv:
error: externally-managed-environment
× 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.:
python3 -m venv /path/to/venv
. /path/to/venv/bin/activate
pip install mypackage
To exit the virtual environment, run:
deactivate
The virtual environment is not deleted, and can be re-entered by re-sourcing
the activate file.
To automatically manage virtual environments, consider using pipx (from the
pipx package).
note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.
------
failed to solve: process "/bin/sh -c pip install xlsx2csv" did not complete successfully: exit code: 1
pipxでxlsx2csvをインストール
Dockerfile
FROM node:22.7-alpine3.20
RUN apk update && apk upgrade && apk add --no-cache \
bash python3
#👇旧式のインストール方法
#RUN apk add --no-cache py3-pip
#RUN pip3 install xlsx2csv
#👇pipxを使ったインストール方法に変更
RUN apk add --no-cache pipx
USER node
RUN pipx ensurepath && pipx install xlsx2csv
#...以降略
$ whoami
node
$ xlsx2csv -v
0.8.3
$ which xlsx2csv
/home/node/.local/bin/xlsx2csv
「USER」で利用ユーザーのインストール先の正しく変更する
「USER node」
/root/.local/bin
まとめ
記事を書いた人
ナンデモ系エンジニア
主にAngularでフロントエンド開発することが多いです。 開発環境はLinuxメインで進めているので、シェルコマンドも多用しております。 コツコツとプログラミングするのが好きな人間です。
カテゴリー