Raspberry Pi OS BookwormでPythonパッケージをインストールする方法

概要

  • Raspberry Pi OS Bookwormでは、システムバージョンのPythonとの競合を避けるために、Pythonパッケージを仮想環境にインストールする必要があります。
  • aptパッケージマネージャーを使用してPythonパッケージを検索してインストールできますが、パッケージが利用できない場合や新しいバージョンが必要な場合は、仮想環境内でpipツールを使用する必要があります。
  • 仮想環境内で行われた変更やインストールは、システムバージョンのPythonには影響しません。

Raspberry Pi OS Bookwormで「pip」ツールを使用してPythonパッケージをインストールする際に問題が発生していますか?Python仮想環境を作成する必要があり、それにはいくつかの追加の手順が必要です。その方法を説明します。

Raspberry Pi OS Bookwormで何が変更されましたか?

Raspberry Pi 5は以前のバージョンのRaspberry Pi OSと互換性がないため、新しい「Bookworm」バージョンをインストールする必要があります。これは、以前のモデルからRaspberry Pi 5に切り替える際に考慮すべき事項の1つです。

DebianベースのRaspberry Pi OSオペレーティングシステム(Buster以前)の以前のバージョンでは、pipパッケージ管理ツールを使用して、Pythonライブラリをシステム全体に直接インストールすることが可能でした。ただし、新しいRaspberry Pi OS Bookwormでは、これはもう不可能です。

Raspberry Piのドキュメントで説明されているように、pipのようなPython固有のツールを使用すると、apt OSパッケージマネージャーとの競合が発生する可能性がありました。

そのため、Bookworm以降では、pipを使用する場合は、パッケージをサンドボックス化されたPython仮想環境にインストールする必要があります。これにより、システムバージョンのPythonと干渉することがなくなります。

システムの他の場所でpip install [package name]コマンドを使用しようとすると、以下のテキストで始まるエラーが表示されます:

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

Aptを使用してPythonパッケージを検索する方法

最初に確認すべきことは、必要なPythonパッケージがシステム全体のaptパッケージマネージャーを使用してインストールできるかどうかです。apt searchコマンドを使用して、公式リポジトリでパッケージを検索できます。たとえば:

apt search numpy

パッケージ名(この場合はpython3-numpy(Pythonバージョン3用))をメモして、aptでインストールします(インストールに必要なスーパーユーザー権限でsudoをプレフィックスとして使用します):

sudo apt install python3-numpy

必要なPythonパッケージがaptパッケージマネージャーを使用して利用できない場合、または新しいバージョンが必要な場合は、Python固有のpipツールを使用して、Python仮想環境内にインストールする必要があります。

Python仮想環境を作成する方法

Raspberry Pi OS Bookwormでpipツールを使用してPythonパッケージをインストールするには、まずvenvを使用してPython仮想環境を作成する必要があります。私たちは「muo-project」と名付けましたが、好きな名前を使用できます:

python -m venv muo-project

完了するまでしばらく時間がかかります。これは、使用しているRaspberry Piのモデルによって異なります。その後、完全なPythonディストリビューションを含む新しく作成された環境フォルダーにディレクトリを変更して、アクティベートする必要があります:

cd muo
source bin/activate

Python仮想環境はすぐに使用できるようになり、システムプロンプトにはその名前(この場合はmuo-project)がプレフィックスとして追加されます。これは、システムバージョンのPythonではなく、仮想環境内のPythonを使用していることを示しています。したがって、それに対して行った変更やインストールしたモジュールは、システムのPythonには影響しません。

Raspberry Piを再起動した場合は、Python環境を再度アクティベートして使用できるようにする必要があります。

現在オペレーティングシステムレベルでインストールされているすべてのPythonモジュールのコピーを使用してPython仮想環境を作成する場合は、コマンドに--system-site-packagesフラグを追加することでできます。例:python -m venv --system-site-packages muo-project.

Pipを使用してPythonパッケージをインストールする

アクティブなPython仮想環境内から、pipコマンドを使用して必要なパッケージをインストールできるようになりました。たとえば、Stressberryシステムストレステストツールをインストールするには:

pip install stressberry

その後、必要な依存関係とともに、Python仮想環境内にモジュールがインストールされます。モジュールはシステム全体ではなく、そこでのみ使用できることに注意してください。

Pythonパッケージの競合はなくなりました

pipツールを使用してRaspberry Pi OS BookwormにPythonパッケージをインストールするには追加の手順が必要ですが、その利点は、仮想環境内でのみ存在するため、システムに干渉したり、システムを壊したりすることができないことです。