Armadilloフォーラム

Debian12(bookworm)におけるpipコマンドエラーの回避策はありますか

suzaki

2024年12月12日 11時33分

==========
製品型番:AGX3020-D00Z
Debian/ABOSバージョン:Debian12(bookworm)
カーネルバージョン:6.1.112-at11
3G/LTE モジュール情報 (Debianのみ):
その他:
==========
ファームウェアをDebian GNU/Linux12(bookworm)にアップデートしました。
ブログ「Armadillo-IoT G3: Modbus/TCPを用いてモジュールを操作する方法」
https://armadillo.atmark-techno.com/blog/7370/3939
を実施しようと、このブログの手順に従い実施しました。
使用するパッケージのインストールで下記エラーが発生します。
回避方法はありますでしょうか。

~# pip install pyModbusTCP
error: externally-managed-environment
× This environment is externally managed
mq> To install Python packages system-wide, try apt install
python3-xyz, where xyz is the package you are trying to
install.

If you wish to install a non-Debian-packaged Python package,
create a virtual environment using python3 -m venv path/to/venv.
Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
sure you have python3-full installed.

If you wish to install a non-Debian packaged Python application,
it may be easiest to use pipx install xyz, which will manage a
virtual environment for you. Make sure you have pipx installed.

See /usr/share/doc/python3.11/README.venv for more information.

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.

以上

コメント

at_shota.shimoyama

2024年12月12日 13時55分

下山です。

pipはversion 23.0から、OSがaptなどでパッケージ管理を行っている場合には、それとの干渉を防ぐために
ただのpip install xxxではインストールできないようになっています。(pyModbusTCPに限りません)

Debian GNU/Linux12(bookworm)にアップデートすると、pipのversionも 23.0 になるためにこのようなエラーが表示されています。

対処方法はエラー文に記載されているとおりで、いくつかの方法があります。
最も簡単な方法は、

pip install  pyModbusTCP --break-system-packages

のように、--break-system-packagesオプションを付けることです。
これにより、aptによるパッケージ管理に破壊的な影響のリスクはあるものの、
従来どおりインストールすることができます。

安全な対処方法としては、
Pythonのvenv環境を用意し、その中でパッケージのインストール&Pythonのスクリプト実行を行う
という方法があります。

エラーの詳細な説明やより詳しい対処方法についてはエラー文の末尾の方にも書かれている「PEP 668」をインターネット上で検索することで様々なサイトでご確認いただけます。

よろしくお願いします。