【树莓派 5B】Python 版本切换

【树莓派 5B】Python 版本切换

  • 前言
  • 整体思路
  • 具体步骤
  • 常见问题
    • Python 无法建立与 Python3 的软连接

前言

本文基于树莓派5B 32-bit 树莓派OS,以 Python-3.11.2 降级到 3.9.2 为例,总结了在树莓派上切换 Python 版本的步骤,帮助大家轻松完成 Python 版本的切换。

只需将下载本文中Python的版本号,修改为你想切换的版本号即可

参考资料:
树莓派 python3.9降级为python3.7
莓派上快速安装Python3.6.5

整体思路

系统更新 --> 安装依赖包 --> 下载并编译安装 Python 3.9.2 --> 删除旧的 Python 3 符号链接 --> 创建新的符号链接 --> 验证 Python 版本

具体步骤

1. 系统更新

首先,我们需要确保系统是最新的,以避免因为软件版本差异而导致的兼容性问题。使用以下命令来更新系统

sudo apt-get update
sudo apt-get upgrade -y
  • sudo apt-get update:更新软件包列表,确保系统获取到最新的软件包信息。
  • sudo apt-get upgrade -y:升级所有已安装的软件包,使系统保持最新状态。

2. 安装 Python 依赖环境

在安装 Python 之前,我们需要安装一些必要的依赖包,确保编译 Python 时不缺少必要的库。

依赖包括编译工具、数据库支持库和压缩文件处理库,确保 Python 的正常编译和运行(弱化版的环境)

sudo apt-get install build-essential libsqlite3-dev sqlite3 bzip2 libbz2-dev
  • build-essential:提供了构建软件所需的编译器和其他工具。
  • libsqlite3-devsqlite3:用于 SQLite 数据库支持,这是 Python 常用的数据库模块之一。
  • bzip2libbz2-dev:用于处理 .bz2 压缩文件的库,Python 依赖于这些库来解压特定格式的文件。

3. 下载 Python 3.9.2 源代码并解压

我们需要下载 Python 3.9.2 的源代码包,并将其解压缩,以便后续编译安装。

wget https://www.python.org/ftp/python/3.9.2/Python-3.9.2.tgz
tar zxvf Python-3.9.2.tgz
  • wget:从指定的 URL 下载 Python 源代码包。
  • tar zxvf:解压 .tgz 文件,其中 z 表示解压 gzip 压缩文件,x 表示解档,v 表示显示详细信息,f 指定要处理的文件。

另一种下载 Python 3.9.2 的方法

wget 下载速度可能较慢,可以使用手动拷贝的方法。

  1. 在电脑端打开以下网址下载 Python 3.9.2 的压缩包:

    https://www.python.org/ftp/python/3.9.2/Python-3.9.2.tgz

  2. 将下载的压缩包拷贝到 U 盘

  3. 将 U 盘中的压缩包拷贝到树莓派的 /home/pi 文件夹中

不要忘了,拷贝到树莓派后也要执行解压操作 tar zxvf Python-3.9.2.tgz

4. 安装编译 make

进入 Python 3.9 的源代码目录,并执行配置、编译和安装命令:

cd Python-3.9.2
sudo ./configure && sudo make && sudo make install
  • cd Python-3.9.2:进入 Python 源代码目录。
  • ./configure:检查系统环境,生成适合当前系统的编译配置文件。
  • make:根据配置文件编译 Python 源代码,生成可执行文件。
  • sudo make install:将编译生成的 Python 安装到系统中,使其可以全局使用。

ps:
CMake(./configure):生成编译路线,创建 Makefile 来链接各个文件。规定文件、代码、库直接如何链接
Make:根据生成的路线图(Makefile),跑一遍,编译源代码,生成可执行程序或库文件(已经编译好的二进制文件)
Make install:将已编译好的程序安装到系统目录中,供后续调用。(后续每次使用程序时,不是重新编译,而是执行已经编译好的二进制文件)

可以执行 python3.9 --version 来来检查 Python 3.9.2 是否安装成功

这一步完成后,Python 3.9.2 将被安装到系统中

5. 删除旧版本的符号链接

由于系统原来存在的 python3 符号链接可能指向 Python 3.11,因此我们需要先将其移除:

sudo rm /usr/bin/python3
  • sudo rm /usr/bin/python3:删除 /usr/bin/python3 这个符号链接,使得 python3 不再指向旧的 Python 3.11 版本。注意,这只是删除链接,不会删除实际的 Python 3.11 程序。

6. 建立新的符号链接

为了让系统将 python3python 命令指向 Python 3.9,我们需要创建新的符号链接:

sudo ln -s /usr/local/bin/python3.9 /usr/bin/python3
sudo ln -s /usr/bin/python3 /usr/bin/python

这两条命令确保 python3 和 python 都指向 Python 3.9

7. 验证 Python 版本
最后,确认 Python 版本切换是否成功

python3 --version
python --version

常见问题

Python 无法建立与 Python3 的软连接

执行符号链接创建命令时,有时会遇到 python 无法正确链接到 python3 的问题。这可能是由于之前的符号链接未完全移除,或者系统中存在多个 Python 版本导致冲突。

  1. 确认旧的符号链接是否已完全删除:

    ls -l /usr/bin/python3
    

    如果链接还存在,使用 sudo rm 彻底删除。

  2. 确保 /usr/local/bin/python3.9 路径正确:
    使用以下命令检查是否有可执行文件:

    ls /usr/local/bin/python3.9
    
  3. 重新创建符号链接:
    再次执行以下命令来创建新的符号链接:

    sudo ln -s /usr/local/bin/python3.9 /usr/bin/python3
    sudo ln -s /usr/bin/python3 /usr/bin/python
    

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CAS简介

#1024程序员节|征文# CAS是什么? CAS(Compare And Swap),即比较与交换,是一种乐观锁的实现方式,用于在不使用锁的情况下实现多线程之间的变量同步。 CAS操作包含三个操作数:内存位…

Stability.AI 发布 SD3.5 模型,能否逆袭击败 FLUX?如何在ComfyUI中的使用SD3.5?

就在前天,Stability AI 正式发布了 Stable Diffusion 3.5版本,包括 3 款强大的模型: Stable Diffusion 3.5 Large:拥有 80 亿参数,提供卓越的图像质量和精确的提示词响应,非常适合在 1 兆像素分辨率下的专…

鸿蒙开发:走进stateStyles多态样式

前言 一个组件,多种状态下,我们如何实现呢?举一个很简单的案例,一个按钮,默认状态下是黑色背景,点击后是红色,手指放开后还原黑色。 我们自然而然的就会想到利用手势的按下和抬起,…

美课+, 一个公司老项目,一段程序猿的技术回忆

前言 "美课"项目从2018年3月26号开始启动到2018年6月8号结束,总计两个月多的时间,项目的时间节点比较紧张.虽然最后没有上线很遗憾,但是,不管是在流程和项目上,对自己都是一次不错的尝试.下面我就对这次项目做一下iOS端的整体总结. #### 技术难点 *** 在iOS端,我感到…

鸿蒙应用开发:数据持久化

最近在搞公司项目用到了鸿蒙端的数据持久化,特来跟大家分享一下。 在鸿蒙开发中,可以使用以下几个包来实现数据的持久化处理: Data Ability 通过数据能力组件,开发者可以实现复杂的数据操作,包括增、删、改、查等功…

【国潮来袭】华为原生鸿蒙 HarmonyOS NEXT(5.0)正式发布:鸿蒙诞生以来最大升级,碰一碰、小艺圈选重磅上线

在昨日晚间的原生鸿蒙之夜暨华为全场景新品发布会上,华为原生鸿蒙 HarmonyOS NEXT(5.0)正式发布。 华为官方透露,截至目前,鸿蒙操作系统在中国市场份额占据 Top2 的领先地位,拥有超过 1.1 亿 的代码行和 6…

Linux如何安装“ServerAgent“并使用?

1、cd /home/ 2、上传文件到项目文件下 3、解压 unzip ServerAgent-2.2.3.zip 4、打开文件 cd ServerAgent-2.2.3/ 5、赋权(测试环境) chmod -R 777 *6、启动 ./startAgent.sh

Prompt-Tuning方法学习

文章目录 一、背景1.1 Pre-training1.2 Fine-Tuning1.3 高效微调(SOTA PEFT)1.4 基于强化学习的进阶微调方法(RLHF) 二、Prompt-Tuning技术2.1 发展历程2.2 Prompt模板构建方式 三、基于连续提示的Prompt Tuning四、Q&A 一、背…

程序员节日的日期是10月24日‌程序员日

‌程序员节日的日期是10月24日。‌ 这一天被称为‌中国程序员日或‌1024程序员节,由‌博客园、‌CSDN等自发组织设立,旨在纪念程序员对科技世界的贡献。 程序员节日的由来和意义 1024程序员节的由来可以追溯到2010年,最初由网友提出设立一个…

RocketMQ消息处理详解!

文章目录 引言同步发送原理分析优缺点优点缺点 使用场景 异步发送原理分析优缺点优点缺点使用场景 单向发送原理分析优缺点优点缺点 使用场景 三种方式对比如何选择同步发送异步发送单向发送 总结 引言 在 RocketMQ 中,有 3种简单的消息发送方式:同步发…

计算服务器:开启科学计算新变革的强大引擎

1983 年,著名数学家 Lax 为首的调研小组指出,大型科学计算对国家安全、科技进步与经济发展至关重要,从美国国家利益出发,大型计算的绝对优势不容动摇。 科学计算是什么?为何在 20 世纪 80 年代就被提升到美国国家利益层…

Pytest日志收集器配置

前言 在pytest框架中,日志记录(logging)是一个强大的功能,它允许我们在测试期间记录信息、警告、错误等,从而帮助调试和监控测试进度。 pytest与Python标准库中的logging模块完美集成,因此你可以很容易地在…

vmware虚拟机linux系统安装

一、下载linux镜像安装包 步骤1---网址地址下载镜像 地址:Index of /ubuntu-releases/22.04/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 步骤2---下载linux版本号 步骤3---查看下载的linuxiso linux镜像操作系统 二、vmware新建安装linux操作系统…

边缘计算技术的优势与挑战

如今,随着5G快速无线网络的到来,将计算存储和物联网(IoT)分析的部署放在靠近数据产生的地方,使得边缘计算成为可能。 物联网设备和新应用的扩展需要实时计算能力。5G无线正在考虑边缘系统,以快速跟踪支持实…

基于SpringBoot+Vue的厨艺交流系统的设计与实现(源码+定制开发)厨艺知识与美食交流系统开发、在线厨艺分享与交流平台开发、智能厨艺交流与分享系统开发

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

爬虫中代理ip选择和使用实战

一、爬虫中的反爬问题 爬虫技术不仅是一种工具,更像是一门捕捉信息的艺术。通过它,我们能够从浩瀚的互联网中,精确获取到所需的有价值数据。对于那些需要进行数据分析或模型训练的人来说,爬虫技术几乎是必备的技能。虽然网上公开…

git提交到github个人记录

windows下git下载 1.进入git官网https://git-scm.com/downloads/win 一直默认选项即可 2.在settings中SSH and GPG keys中Add SSH key 3.选择git cmd git使用 1.配置用户名,和邮箱 git config --global user.email "youexample.com" git config --g…

Director3D: Real-world Camera Trajectory and 3DScene Generation from Text 论文解读

目录 一、概述 二、相关工作 1、文本到3D生成 2、3DGS 三、Director3D 1、Cinematographer 2、Decorator 3、Detailer 4、Loss 一、概述 该论文提出利用真实世界数据集,设计一个从文本生成真实世界3D场景和自适应相机轨迹的强大的开放世界文本到3D生成框架…

067_基于springboot的HSK学习平台

目录 系统展示 开发背景 代码实现 项目案例 获取源码 博主介绍:CodeMentor毕业设计领航者、全网关注者30W群落,InfoQ特邀专栏作家、技术博客领航者、InfoQ新星培育计划导师、Web开发领域杰出贡献者,博客领航之星、开发者头条/腾讯云/AW…

【进阶OpenCV】 (18)-- Dlib库 --人脸关键点定位

文章目录 人脸关键点定位一、作用二、原理三、代码实现1. 构造人脸检测器2. 载入模型(加载预测器)3. 获取关键点4. 显示图像5. 完整代码 总结 人脸关键点定位 在dlib库中,有shape_predictor_68_face_landmarks.dat预测器,这是一个…