在树莓派OS Bookworm中如何安装Python包

树莓派OS "Bookworm"版本,用于树莓派5上,更改了安装Python模块的方法。

关键要点:

1)树莓派OS Bookworm需要在一个虚拟环境中安装Python包来防止与Python的系统版本发生冲突。

2)你可以使用apt包管理器来搜索和安装Python包,但如果这个包获取不到或者你需要一个更新版本,你需要在一个虚拟环境中使用pip工具。

3)在虚拟环境中任何更改或安装不会影响系统版本Python。

在Raspberry Pi OS Bookworm中使用"pip"工具进行安装Python包吗?你需要采取一些额外步骤,包括创建一个Python虚拟环境。这是如何做这件事。

在树莓派OS Bookworm中做了什么更改

由于树莓派5不兼容更早版本的树莓派OS,你将需要在它上安装新的"Bookworm"。当从一个较早型号切换到树莓派5时,这是需要考虑事情中的一件。

在先前基于Debain的树莓派OS操作系统版本(Buster和更早)中,使用pip包管理工具直接系统范围安装Python库是可能的。但新的树莓派OS Bookworm中不再是这种情况。

如树莓派文档解释,这个问题是使用诸如pip的Python专用工具会产生与apt OS包管理器冲突。因而,从Bookworm之后,在使用pip时,包必须被安装到一个封装的Python虚拟环境中,这个环境确保它们步干扰系统版本的Python。

如果你尝试在系统中任何其它地方使用命令pip install[包名],你将接收一个以这段文本开始的错误:

user@raspberrypi:/usr/local $ sudo pip install pyepics
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.

    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.

    For more information visit http://rptl.io/venv

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.

如何用apt搜索Python包

要检查的第一件事是你需要的Python包是否可用于使用系统范围apt包管理器来安装。你需要使用apt search命令在官方仓库中搜索包。例如:

user@raspberrypi:/usr/local $ sudo apt search numpy | grep  numpy

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

libboost-numpy-dev/stable 1.74.0.3 arm64
libboost-numpy1.74-dev/stable 1.74.0+ds1-21 arm64
libboost-numpy1.74.0/stable 1.74.0+ds1-21 arm64
libboost-numpy1.81-dev/stable 1.81.0-5+deb12u1 arm64
libboost-numpy1.81.0/stable 1.81.0-5+deb12u1 arm64
numpy-stl/stable,stable 2.9.0-2 all
  annotated gene by sample numpy matrix
  Gnuplot-based plotter for numpy
python3-msgpack-numpy/stable,stable 0.4.8-1 all
  serialize numpy arrays using msgpack
python3-numpy/stable,now 1:1.24.2-1 arm64 [已安装]
python3-numpy-groupies/stable,stable 0.9.20-1 all
python3-numpydoc/stable,stable 1.5.0-1 all
python3-numpysane/stable,stable 0.36-1 all
  more-reasonable core functionality for numpy
  Library for computation of physical quantities with units, based on numpy
  S-expressions for numpy - Python 3 version
  Python package for handling numpy arrays with units

注意:包名,在这个例子中python3-numpy(用于Python版本3),并且接着用apt安装它(以sudo为前缀,用于安装时所需的root权限)。

user@raspberrypi:/usr/local $ sudo  apt install python3-numpy
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成
python3-numpy 已经是最新版 (1:1.24.2-1)。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。

 如果使用apt包管理器,你需要的Python包获取不到,或者你需要一个它的更新版本,你需要在一个Python虚拟环境中使用Python专用的pip工具来安装它。

如何创建一个Python虚拟环境

要在树莓派OS Bookworm中,用pip工具安装一个python包,你首先需要用venv创建一个虚拟Python环境。我们称我们的"first-venv-project",但你可以使用你想要的任何名称:

user@raspberrypi:~ $ python -m venv first-venv-project

取决于你正在使用的树莓派型号,它将需要一小会来完成。你接着将需要切换目录到这个新创建的环境文件夹,它包含了一个完整的Python发行包,并且激活它:

user@raspberrypi:~ $ ls
公共  视频  文档  音乐       Desktop
模板  图片  下载  Bookshelf  first-venv-project
user@raspberrypi:~ $ cd first-venv-project/
user@raspberrypi:~/first-venv-project $ ls
bin  include  lib  lib64  pyvenv.cfg
(first-venv-project) user@raspberrypi:~/first-venv-project $ $ source bin/activate

Python虚拟环境现在准备好使用了,并且将在系统提示前添加它的名称,在本例中,(first-venv-project)。这显示了你不再使用系统版本的Python,而是在你虚拟环境中的Python。因此,你对它做的任何更改活着的你安装了模块,不影响系统Python。

注意:你想要用在操作系统级别安装的当前所有Python模块的一个副本创建一个Python虚拟环境,你可以通过在命令中添加--system-site-packages来做这件事。例如:python -m venv --system-site-packages first-venv-project

用Pip安装Python包

从激活的Python虚拟环境内,你可以使用pip命令安装你需要的任何包。例如,安装numpy, scipy和pyepics工具:

(first-venv-project) user@raspberrypi:~/first-venv-project $ pip install numpy
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting numpy
  Downloading numpy-1.26.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (14.2 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 14.2/14.2 MB 1.1 MB/s eta 0:00:00
Installing collected packages: numpy
Successfully installed numpy-1.26.3
(first-venv-project) user@raspberrypi:~/first-venv-project $ pip install scipy
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting scipy
  Downloading scipy-1.11.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (32.9 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 32.9/32.9 MB 954.3 kB/s eta 0:00:00
Requirement already satisfied: numpy<1.28.0,>=1.21.6 in ./lib/python3.11/site-packages (from scipy) (1.26.3)
Installing collected packages: scipy
Successfully installed scipy-1.11.4
(first-venv-project) user@raspberrypi:~/first-venv-project $ pip install pyepics
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting pyepics
  Downloading https://www.piwheels.org/simple/pyepics/pyepics-3.5.2-py3-none-any.whl (5.0 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.0/5.0 MB 647.5 kB/s eta 0:00:00
Requirement already satisfied: setuptools in ./lib/python3.11/site-packages (from pyepics) (66.1.1)
Requirement already satisfied: numpy in ./lib/python3.11/site-packages (from pyepics) (1.26.3)
Collecting pyparsing
  Downloading https://www.piwheels.org/simple/pyparsing/pyparsing-3.1.1-py3-none-any.whl (103 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 103.1/103.1 kB 191.2 kB/s eta 0:00:00
Installing collected packages: pyparsing, pyepics
Successfully installed pyepics-3.5.2 pyparsing-3.1.1

它将接着在你的Python虚拟环境中和它们所需要的任何以来包一起安装这些模块。注意:这些模块将只在这里可用而不是系统范围。

(first-venv-project) user@raspberrypi:~/first-venv-project $ python
Python 3.11.2 (main, Mar 13 2023, 12:18:29) [GCC 12.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import epics
>>> epics.caget("Ortec974A:Scaler1.TP")
1000.0
>>> epics.caget("Ortec974A:Scaler1.TP1")
1.0

Python包不再冲突

当在树莓派Bookworm中使用pip工具安装python包时,需要额外的步骤,优势是它们仅在虚拟环境中活动,并且因而不干扰或破坏这个系统。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/310707.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何在群辉NAS使用Docker搭建容器魔方并实现无公网ip远程访问

文章目录 1. 拉取容器魔方镜像2. 运行容器魔方3. 本地访问容器魔方4. 群辉安装Cpolar5. 配置容器魔方远程地址6. 远程访问测试7. 固定公网地址 本文主要介绍如何在群辉7.2版本中使用Docker安装容器魔方&#xff0c;并结合Cpolar内网穿透工具实现远程访问本地网心云容器魔方界面…

商品源数据如何采集,您知道吗?

如今&#xff0c;电子商务已经渗透到了人们生活的方方面面。2020年新冠肺炎突如其来&#xff0c;打乱了人们正常的生产生活秩序&#xff0c;给经济发展带来了极大的影响。抗击疫情过程中&#xff0c;为避免人员接触和聚集&#xff0c;以“无接触配送”为营销卖点的电子商务迅速…

【数据结构】7大排序最详细

0.前言 接下来进入排序&#xff0c;我们知道在c语言阶段可能就学习过了像冒泡排序&#xff0c;选择排序这种比较简单的排序&#xff0c;那么接下来我们就会学习到更加高级的排序算法。但高级代表着难度的提升&#xff0c;但不用担心&#xff0c;博主会细细来谈&#xff0c;慢慢…

使用Rider C# Dll工程和Unity工程互相调用、断点方法

总体流程 创建C# Dll工程&#xff0c;生成C#工程Dll 创建Unity工程 Unity调用C#工程的代码 C#工程调用Unity工程的代码 断点方法 创建C# Dll工程&#xff0c;生成C#工程Dll 创建工程 选这个&#xff0c;注意UnityEngineDll这个选项&#xff0c;要选你目标unity版本的Dll…

【【深入浅出了解静态时钟分析和时钟约束】】

深入浅出了解静态时钟分析和时钟约束 时序分析是什么&#xff1f; 我们提出一些特定的时序要求&#xff08;或者说是添加特定的时序约束&#xff09;&#xff0c;使用特定的时序模型&#xff0c;针对特定的电路进行分析。分析的最终结果是要求系统时序满足我们提出的要求。 这…

MySQL的三种存储引擎 InnoDB、MyISAM、Memory

InnoDB 1). 介绍 InnoDB是一种兼顾高可靠性和高性能的通用存储引擎&#xff0c;在 MySQL 5.5 之后&#xff0c;InnoDB是默认的MySQL 存储引擎。 2). 特点 DML操作遵循ACID模型&#xff0c;支持事务&#xff1b; 行级锁&#xff0c;提高并发访问性能&#xff1b; 支持外键F…

云渲染是什么?云渲染有什么用?云渲染对本地的渲染的影响有哪些?

如果你曾经在深夜加班&#xff0c;眼睁睁看着电脑显卡冒着烟、渲染器哭着喊着把你的CPU和GPU当成磨盘来使用&#xff0c;那么你可能会对云渲染心生向往。毕竟&#xff0c;谁不想在享用最新游戏画面和电影级效果的同时&#xff0c;不用忍受电脑发热、卡顿等问题呢&#xff1f; 云…

What does “grep -i“ do?

grep&#xff08; Global Regular Expression Print &#xff09;根据 给定的正则表达式 搜索文本&#xff0c;并将匹配的行打印出来 grep -i 表示查找的过程中忽略大小写 在已安装的rpm包里&#xff0c;查询是否有tree相关的包 rpm -qa | grep -i "tree"在文件中搜…

在Vivado下利用Tcl实现IP的高效管理

在Vivado下利用Tcl实现IP的高效管理https://cloud.tencent.com/developer/article/1736645 在Vivado下&#xff0c;有两种方式管理IP。一种是创建FPGA工程之后&#xff0c;在当前工程中选中IP Catalog&#xff0c;生成所需IP&#xff0c;这时相应的IP会被自动添加到当前工程中&…

一键去背景怎么去?使用这些智能抠图软件即可已经去背景

作为一名设计师&#xff0c;我们的工作不仅仅是追逐创意的火花&#xff0c;为品牌和产品打造独特的形象。在美好的表象之下&#xff0c;有一项常常让我们苦恼的“必修课”——抠图。抠图是设计过程中不可或缺的一环&#xff0c;它要求我们对图像进行精细的处理&#xff0c;以确…

2019年认证杯SPSSPRO杯数学建模D题(第一阶段)5G时代引发的道路规划革命全过程文档及程序

2019年认证杯SPSSPRO杯数学建模 5G下十字路口车辆通行效率的讨论和建模 D题 5G时代引发的道路规划革命 原题再现&#xff1a; 忙着回家或上班的司机们都知道交通堵塞既浪费时间又浪费燃料&#xff0c;甚至有的时候会带来情绪上的巨大影响&#xff0c;引发一系列的交通问题。…

使用脚本把springboot程序部署到k8s上

一般我们部署写4个文件就行了 首先分别写 Dockerfile1package.sh2build.shdocker_push.sh Dockerfile # 基于jdk1.8 FROM openjdk:8-jdk-alpine RUN echo "Asia/Shanghai" > /etc/timezone RUN mkdir /app WORKDIR /appCOPY ./monitor-flink-1.0.jar /appEXPO…

WPF 布局

了解 WPF中所有布局如下&#xff0c;我们一一尝试实现&#xff0c;本文档主要以图形化的形式展示每个布局的功能。 布局&#xff1a; Border、 BulletDecorator、 Canvas、 DockPanel、 Expander、 Grid、 GridView、 GridSplitter、 GroupBox、 Panel、 ResizeGrip、 Separat…

【软件测试作业_TPshop商城】农业工程学院-测试需求分析与测试计划+自动化+性能+测试用例+报告软件缺陷+测试计划+单元测试+系统测试

1测试需求分析与测试计划 1.1 被测系统简介 1.2测试需求分析 1.2.1单元测试层面的测试需求分析 1.2.2系统测试层面的测试需求分析 1.3测试计划 1.31测试范围与任务 1.3.2 测试环境 1.3.3测试进度安排 测试用例的设计2 2.1单元测试层面的测试用例设计 2.2系统测试层面的测试用例…

Redis:原理速成+项目实战——Redis实战10(Redis消息队列实现异步秒杀)

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位大四、研0学生&#xff0c;正在努力准备大四暑假的实习 &#x1f30c;上期文章&#xff1a;Redis&#xff1a;原理速成项目实战——Redis实战9&#xff08;秒杀优化&#xff09; &#x1f4da;订阅专栏&#xff1a;Redis&…

zookerper入门

zookerper介绍 ZooKeeper 是一个开源的分布式协调框架,主要用来解决分布式集群中应用系统的一致性问题. ZooKeeper本质上是一个分布式的小文件存储系统&#xff08;Zookeeper文件系统监听机制&#xff09;.提供基于类似于文件系统的目录树方式的数据存储&#xff0c;并且可以…

PFA试剂瓶——实验室存储运输化学试剂样品容器

PFA是一种高性能的塑料材料。它是一种热塑性塑料&#xff0c;由全氟化&#xff0c;聚合物制成&#xff0c;具有高度的化学稳定性性。由于其优异的性能&#xff0c;PFA被广泛应用于多个领域&#xff0c;尤其是作为存储和运输各种化学试剂的容器&#xff0c;耐受-200℃至260C的温…

闩锁效应(Latch-up)

闩锁效应&#xff08;Latch-up&#xff09;原理解析 什么是闩锁效应&#xff08;Latch-up&#xff09;&#xff1f; 在CMOS N阱设计中&#xff0c;实际上是由于CMOS电路中基极和集电极相互连接的两个PNP和NPN双极性BJT管子(下图中&#xff0c;侧面式NPN和垂直式PNP)的回路放大…

AI实景自动直播项目怎么样?解决实体行业直播难题!

在如今的互联网时代&#xff0c;作为实体老板想要在激烈的同行竞争中占领优势&#xff0c;那短视频和直播必然是要做的推广渠道之二&#xff0c;但是最近短视频流量持续下滑&#xff0c;带来的订单量越来越少&#xff0c;必然直播将成为常态化的宣传动作&#xff0c;如今抖捧AI…

Allure07-动态生成用例标题

Allure07-动态生成用例标题 高清B站链接 Allure报告清空上一次运行的记录 使用pytest-h 可以查勘报告相关的三个参数 reporting 报告相关参数 –alluredirDIR 指定报告的目录路径 –clean-alluredir 如果已经存在报告&#xff0c;就先清空它 –allure-no-capture 不加载 log…