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 になるためにこのようなエラーが表示されています。
対処方法はエラー文に記載されているとおりで、いくつかの方法があります。
最も簡単な方法は、
のように、
--break-system-packages
オプションを付けることです。これにより、aptによるパッケージ管理に破壊的な影響のリスクはあるものの、
従来どおりインストールすることができます。
安全な対処方法としては、
Pythonのvenv環境を用意し、その中でパッケージのインストール&Pythonのスクリプト実行を行う
という方法があります。
エラーの詳細な説明やより詳しい対処方法についてはエラー文の末尾の方にも書かれている「PEP 668」をインターネット上で検索することで様々なサイトでご確認いただけます。
よろしくお願いします。