如何在 Raspberry Pi OS Bookworm 中安装 Python 包

核心要点

  • 在树莓派操作系统Bookworm中,为了避免与系统Python版本发生冲突,应在虚拟环境中安装Python包。
  • 您可以使用apt包管理器查找并安装Python包,但若该包不可用或需要更新的版本,则应在虚拟环境中使用pip工具。
  • 虚拟环境中的任何更改或安装都不会影响系统Python版本。

在树莓派操作系统Bookworm中使用“pip”工具安装Python包时遇到了问题?您需要执行一些额外的步骤,包括创建Python虚拟环境。以下是如何操作的具体指南。

树莓派操作系统Bookworm发生了什么变化?

由于树莓派5与早期版本的树莓派操作系统不兼容,因此您需要在其上安装新的“Bookworm”版本。这是从早期型号过渡到树莓派5时需要考虑的关键事项之一。

在基于Debian的树莓派操作系统早期版本(Buster及更早版本)中,可以使用pip包管理工具在系统范围内直接安装Python库。然而,在最新的树莓派操作系统Bookworm中,情况有所不同。

正如树莓派官方文档所解释的那样,问题在于使用特定于Python的工具(如pip)可能会与apt操作系统包管理器发生冲突。

因此,从Bookworm开始,当使用pip时,必须将包安装到隔离的Python虚拟环境中,以确保它们不会干扰系统Python版本。

如果您尝试在系统其他位置使用命令pip install [包名],您会收到如下错误提示:

error: externally-managed-environment

× 这个环境是由外部管理的
╰─> 要在系统范围内安装Python包,请尝试apt install
  python3-xyz,其中xyz是您尝试安装的包。

如何使用Apt搜索Python包

首先要检查的是,您需要的Python包是否可以通过系统范围的apt包管理器进行安装。您可以使用apt search命令在官方存储库中搜索包。例如:

apt search numpy

记下包名称,在本例中为python3-numpy(适用于Python版本3),然后使用apt安装它(使用sudo前缀以获取安装所需的超级用户权限):

sudo apt install python3-numpy

如果使用apt包管理器无法获取所需的Python包,或者您需要更新版本的Python包,则需要在Python虚拟环境中使用特定于Python的pip工具进行安装。

如何创建Python虚拟环境

要在树莓派操作系统Bookworm中使用pip工具安装Python包,首先需要使用venv创建虚拟Python环境。我们在此将项目命名为“muo-project”,但您可以自定义任何名称:

python -m venv muo-project

这将需要一些时间完成,具体取决于您使用的树莓派型号。然后,您需要将目录更改为新创建的环境文件夹(其中包含完整的Python发行版)并激活它:

cd muo
source bin/activate

Python虚拟环境现在可以使用了,系统提示符前面将添加其名称,在本例中为muo-project。这表明您不再使用系统版本的Python,而是虚拟环境中的版本。因此,您对其所做的任何更改或安装的模块都不会影响系统Python。

请注意,如果重新启动树莓派,则需要重新激活Python环境才能再次使用它。

如果要创建一个包含当前操作系统级别安装的所有Python模块副本的Python虚拟环境,可以通过在命令中添加--system-site-packages标志来实现。例如:python -m venv --system-site-packages muo-project

使用Pip安装Python包

在激活的Python虚拟环境中,您现在可以使用pip命令安装任何所需的包。例如,安装Stressberry系统压力测试工具:

pip install stressberry

然后,它将在您的Python虚拟环境中安装该模块及其所需的任何依赖项。请注意,该模块仅在虚拟环境中可用,而不是在系统范围内可用。

不再有Python包冲突

虽然在树莓派操作系统Bookworm中使用pip工具安装Python包需要额外的步骤,但好处是它们只存在于虚拟环境中,因此不会干扰或破坏系统。