树莓派超全系列文档--(10)RaspberryOS上使用 Python
RaspberryOS上使用 Python
- 在 Raspberry Pi 上使用 Python
- 使用 `apt` 安装 Python 软件包
- 使用 `pip` 安装 Python 库
- Bookworm 对 `pip` 安装的更改
- 在虚拟环境中使用 pip
- 创建虚拟环境
- 进入虚拟环境
- 退出虚拟环境
- 使用 Thonny 编辑器
文章来源: http://raspberry.dns8844.cn/documentation
原文网址
在 Raspberry Pi 上使用 Python
Raspberry Pi 操作系统预装了 Python 3。干扰系统 Python 安装会给操作系统带来问题。安装第三方 Python 库时,请务必使用正确的软件包管理工具。
在 Linux 上,您可以通过两种方式安装 python
依赖:
- 使用
apt
安装预配置的系统包 - 使用
pip
在虚拟环境中使用 Python 的依赖关系管理器安装库。
IMPORTANT: 从 Raspberry Pi OS Bookworm 开始,您只能使用 pip
安装到 Python 虚拟环境 (venv
)。这一更改是由 Python 社区引入的,而不是由 Raspberry Pi 引入的:欲了解更多信息,请参阅 PEP668。
使用 apt
安装 Python 软件包
通过 apt
安装的软件包是专为 Raspberry Pi 操作系统打包的。这些软件包通常经过预编译,因此安装速度更快。由于 apt
会管理所有软件包的依赖关系,因此使用此方法安装时会包含运行软件包所需的所有子依赖关系。而且 apt` 还能确保在卸载时不会破坏其他软件包。
例如,要安装支持 Raspberry Pi 的 Python 3 库 Build HAT,请运行以下命令:
$ sudo apt install python3-build-hat
要查找使用 apt
发布的 Python 软件包,请使用 apt search
。在大多数情况下,Python 软件包使用前缀 python-
或 python3-
:例如,你可以用 python3-numpy
这个名字找到 numpy
软件包。
使用 pip
安装 Python 库
Bookworm 对 pip
安装的更改
在旧版本的 Raspberry Pi OS 中,可以使用 pip
将库直接安装到 Python 的系统版本中。从 Raspberry Pi OS Bookworm 开始,用户不能直接将库安装到 Python 的系统版本中。
取而代之的是 xref:os.adoc#use-pip-with-virtual-environments[将库安装到虚拟环境 (venv
)]。要在系统级别为所有用户安装库,请使用 使用 apt
安装。
尝试在全系统安装 Python 包时,会输出类似下面的错误:
$ pip install buildhat
error: externally-managed-environment× This environment is externally managed
╰─> To install Python packages system-wide, try apt installpython3-xyz, where xyz is the package you are trying toinstall.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. Makesure you have python3-full installed.For more information visit http://rptl.io/venv
NOTE: 如果您认为这是一个错误,请联系您的 Python 安装或操作系统发行提供商。您可以通过 --break-system-packages 来覆盖此选项,但这有可能导致您的 Python 安装过程或操作系统出现异常。
提示:详细规范请参见 PEP 668。
长期以来,Python 用户一直在处理操作系统软件包管理器(如 apt
)与 Python 特定的软件包管理工具(如 pip
)之间的冲突。这些冲突包括 Python级 API 的不兼容性和文件所有权的冲突。
从 Raspberry Pi OS Bookworm 开始,通过 pip
安装的软件包 必须安装到 Python 虚拟环境 (venv
)。虚拟环境是一个容器,您可以在其中安全地安装第三方模块,这样它们就不会干扰您的系统 Python。
在虚拟环境中使用 pip
要使用虚拟环境,需要创建一个容器来存储环境。根据你使用 Python 的方式,有几种方法可以做到这一点。
单个项目虚拟环境::
许多用户为每个Python项目创建单独的虚拟环境。在每个项目的根文件夹中找到虚拟环境,通常使用 env
之类的共享名称。从每个项目的根文件夹中运行以下命令以创建虚拟环境配置文件夹:
$ python -m venv env
在项目上工作之前,从项目根目录运行以下命令开始使用虚拟环境:
$ source env/bin/activate
然后您会看到类似下面的提示:
(env) $
完成项目工作后,可以在任意目录运行以下命令离开虚拟环境:
(env) $ deactivate
单独用户环境::
您可以为您的用户帐户创建一个虚拟环境,而不是为每个Python项目创建一个虚拟环境。**在运行任何Python代码之前激活该虚拟环境。**这种方法对于跨项目共享许多库的工作流来说更方便。
在整个用户帐户中为多个项目创建虚拟环境时,请考虑在主目录中定位虚拟环境配置文件。默认情况下,将配置存储在 以点开头命名的文件夹 中来隐藏文件夹,防止它弄乱主文件夹。
使用以下命令在当前用户主目录的隐藏文件夹中创建虚拟环境:
$ python -m venv ~/.env
从任意目录运行以下命令开始使用虚拟环境:
$ source ~/.env/bin/activate
然后,您应该会看到类似于以下内容的提示:
(.env) $
要离开虚拟环境,请从任何目录运行以下命令:
(.env) $ deactivate
创建虚拟环境
运行以下命令创建虚拟环境配置文件夹,将 <env-name>
替换为您希望用于虚拟环境的名称(例如 env
):
$ python -m venv <env-name>
TIP: 在文件夹名称前传递 --system-site-packages
标志以将系统Python安装中所有当前安装的包预加载到虚拟环境中。
进入虚拟环境
然后,执行虚拟环境配置文件夹中的 bin/activate
脚本进入虚拟环境:
$ source <env-name>/bin/activate
然后,您应该会看到类似于以下内容的提示:
(<env-name>) $
(<env-name>)
命令提示符前缀表示当前终端会话位于名为 <env-name>
的虚拟环境中。
要检查您是否处于虚拟环境中,请使用 pip list
查看已安装软件包的列表:
(<env-name>) $ pip list
Package Version
``````-- ```---
pip23.0.1
SetupToks66.1.1
该列表应该比系统 Python 中安装的软件包列表短得多。现在可以安全地使用 pip
安装软件包了。在虚拟环境中使用 pip
安装的软件包只能安装到该虚拟环境。在虚拟环境中,python
或 python3
命令会自动使用虚拟环境的 Python 版本和安装的软件包,而不是系统 Python。
退出虚拟环境
要离开虚拟环境,请运行以下命令:
(<env-name>) $ deactivate
使用 Thonny 编辑器
我们推荐使用 Thonny 在 Raspberry Pi 上编辑 Python 代码。
默认情况下,Thonny 使用系统 Python。不过,您可以点击 Thonny 窗口右下角的 interpreter menu,切换到使用 Python 虚拟环境。选择已配置的环境,或使用 Configure interpreter...
配置新的虚拟环境。
上一篇 – 树莓派超全系列文档–(9)RaspberryOS无障碍选项
下一篇 – 树莓派超全系列文档–(11)RaspberryOS上使用 Python控制GPIO