机器学习筑基篇,​Ubuntu 24.04 编译安装 Python 及多版本切换

438562f51bac6deb54005986bfc72a93.gif

[ 知识是人生的灯塔,只有不断学习,才能照亮前行的道路 ]


Ubuntu 24.04 编译安装最新Python及多版本切换

描述:说到机器学习,人工智能,深度学习不免会提到Python这一门编程语言(人生苦短,及时Python),Python是一门解释型、面向对象、动态数据类型的高级程序设计语言,使用Python可以非常便利的处理各种数据。

4a4e2391e8c2e9355b08cf8510d1553b.png

写这篇教程我想达到的目的主要是“授人以渔”,而不仅仅是“授人以鱼”。希望各位小伙伴可以通过我写的这篇文章,能够明白多Python版本安装思路,逐步自己“独立起来”,下次安装软件的时候就可以自己克服困难,成功安装软件。

这里话接上一篇《AIGC | 为机器学习工作站安装NVIDIA 4070 Ti Super显卡驱动》文章,作为作者进行机器学习的基础篇(筑基期),在 Ubuntu 24.04 TLS Desktop(默认自带3.12.3与发布版本跨度不大,也可以不用升级) 上进行最新版本的Python进行编译安装,并使用 update-alternatives 进行多版本环境切换。

温馨提示:作者后续发布更多机器学习入门及实践操作文章,所以一定要关注我哟。

原文连接:机器学习筑基篇,​Ubuntu 24.04 编译安装 Python 及多版本切换说到机器学习,人工智能,深度学习不免会提到Python这一门编程语言(人生苦短,及时Python),Python是一门解释型、面向对象、动态数据类型的高级程序设计语言,使用Python可以非常便利的处理各种数据。icon-default.png?t=N7T8https://mp.weixin.qq.com/s/CEIZfJiTNDAAN-3tmPZ7og

实践之路

Step 1.首先检查系统软件是否均为最新,并更新到最新版本,并安装后续编译安装所需的依赖,注意:此处作者已排除Kernel进行自动升级。

# 刷新软件包目录
sudo apt update# 列出当前可用的更新
sudo apt list --upgradable# 如上一步提示有可以更新的项目,则执行更新
sudo apt upgrade# 安装依赖
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libbz2-dev liblzma-dev sqlite3 libsqlite3-dev tk-dev uuid-dev libgdbm-compat-dev
 

Step 2. 访问Python官网(www.python.org)下载Python源码包,目前最新稳定版本为 3.12.4(24年6月发布)。

# 下载
sudo wget https://www.python.org/ftp/python/3.12.4/Python-3.12.4.tar.xz
# xz 解压
sudo xz -d Python-3.12.4.tar.xz
# tar 解压到指定目录
tar -xf Python-3.12.4.tar -C /usr/local/src/Python-3.12.4

b691ab4f1b9edcf0081e4f52286bd08b.png

weiyigeek.top-Download Python Source Releases图

温馨提示:考虑到Python源码包较大,如果网络环境不佳,可能下载较慢,建议华为的镜像站下载,链接直达 mirrors.huaweicloud.com/python ,找到需要下载的版本目录下载即可.

Step 3. 进入Python源码目录,进行编译安装。

# 进入源码目录
cd /usr/local/src/Python-3.12.4# 检查依赖与配置编译
sudo ./configure --enable-optimizations --with-lto --enable-shared# 编译参数:
# –enable-optimizations:用 PROFILE_TASK 启用以配置文件主导的优化(PGO)
# –with-lto:在编译过程中启用链接时间优化(LTO)
# –enable-shared:启用共享 Python 库 libpython 的编译
# 更多可用配置项的信息,请参阅 Python 官方文档。
# 注意:这里作者没使用prefix参数指定默认安装路径,我是为了方便后续多版本环境切换做演示,读者可根据自身需要配置。# 编译,-j 后面的数字为参与编译的CPU核心数,根据个人机器配置调整
sudo make -j 8# 安装生成二进制文件
sudo make altinstall

Step 4. 安装完成后,查看Python而二进制版本信息,创建软连接。

/usr/local/src/Python-3.12.4# ./python --version
/usr/local/bin/python3.12.4/python# Python 3.12.4 (main, Jun 28 2024, 10:15:42) [GCC 13.2.0] on linux# Type "help", "copyright", "credits" or "license" for more information.# >>> exit()# 软连接
ln -s /usr/local/src/Python-3.12.4/python /usr/local/bin/python3.12.4ls -l /usr/local/bin/python3.12.4# lrwxrwxrwx 1 root root 35  6月 30 10:39 /usr/local/bin/python3.12.4 -> /usr/local/src/Python-3.12.4/python

Step 5. 安装完成后,如果你的 Ubuntu 上安装了多个 Python 版本,可使用 update-alternatives 进行多版本环境切换。

# 每条命令末尾的数字(即 1、2、3 等)表示该版本的优先级。数值越大,优先级越高。在上图的示例中,Python 3.12 的优先级最高(2),而 Python 3.12.4 的优先级最低(1)。
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.12 2
sudo update-alternatives --install /usr/bin/python python /usr/local/bin/python3.12.4 1
update-alternatives: 使用 /usr/local/bin/python3.12.4 来在自动模式中提供 /usr/bin/python (python)# 查看Python多版本
sudo update-alternatives --list python# /usr/bin/python3.12# /usr/local/bin/python3.12.4# 切换 Python 为最新安装的 3.12.4 版本
sudo update-alternatives --config python# 有 2 个候选项可用于替换 python (提供 /usr/bin/python)。#   选择       路径                       优先级  状态# ------------------------------------------------------------#   0            /usr/bin/python3.12           2         自动模式#   1            /usr/bin/python3.12           2         手动模式# * 2            /usr/local/bin/python3.12.4   1         手动模式# 要维持当前值[*]请按<回车键>,或者键入选择的编号:1# update-alternatives: 使用 /usr/bin/python3.12 来在手动模式中提供 /usr/bin/python (python)# 查看当前python版本,可以看到已经切换到 3.12.4
root@codeServer:~# python --version
Python 3.12.4# 移除添加的Python版本
sudo update-alternatives --remove python /usr/local/bin/python3.12.4

Step 6.安装 pip 包管理工具,并升级 pip 版本,本附上常用镜像源。

# 安装 pip
apt install python3-pip# 升级现有的 pip 版本, 需要使用 python 的命令来升级
python3 -m pip install --upgrade pip# 查看版本
pip3 --version# pip 24.0 from /usr/lib/python3/dist-packages/pip (python 3.12)

考虑到国内网络环境,pip 源建议使用国内镜像源,如清华源,华为源等,这里附上常用镜像源。

清华大学:https://pypi.tuna.tsinghua.edu.cn/simple/
阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科学技术大学:http://pypi.mirrors.ustc.edu.cn/simple/
华中科技大学:http://pypi.hustunique.com/
豆瓣源:http://pypi.douban.com/simple/
腾讯源:http://mirrors.cloud.tencent.com/pypi/simple
华为镜像源:https://repo.huaweicloud.com/repository/pypi/simple/

这里以安装jupyter为例(jupyter.org/install), 使用以下命令安装经典的 Jupyter Notebook:

pip install jupyter -i https://pypi.tuna.tsinghua.edu.cn/simple/
jupyter notebook

如果你是其他Python开发项目,可以先则先上 cd 到项目中存在 requirements 的文件路径,使用下述命令即可安装项目依赖

pip3 install -r requirements.txt -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
# --trusted-host mirrors.aliyun.com 为信任国外站点

本文详细介绍了如何在 Ubuntu 24.04 上安装 Python 3.12 或指定版本、如何安装和升级 Pip,以及如何切换默认 Python 版本,这些技巧有助于满足 Python 用户和开发者的多样化项目需求。

温馨提示:作者最近10年的工作学习笔记(涉及网络、安全、运维、开发),需要学习实践笔记的看友,可添加作者账号[WeiyiGeeker],当前价格¥199,除了获得从业笔记的同时还可进行问题答疑以及每月远程技术支持,希望大家多多支持,收获定大于付出!

530e260bef52c6c9b14a60e4f60eeab9.png


如果此篇文章对你有帮助,请你将它转发给更多的人!

 学习推荐 往期文章

  • 🔥【最新】AIGC | 在机器学习工作站安装NVIDIA CUDA® 并行计算平台和编程模型

  • 🔥【最新】AIGC | 在机器学习工作站安装NVIDIA cuDNN 深度学习库

  • 💡【相关】Python实践之使用pytorch模型学习框架easyocr模块批量识别大数据通信行程码图片并使用Flask返回json字符串

  • 💡【相关】实践使用Python编写对行程码图片内容批量识别的API接口

f6e0b00d333d3c97cec5dbff01332353.gif

c7acf2ae750553dda52f3a13e48e145d.gif

感觉文章不错的童鞋,请帮忙转发,点 👍、在看,若有疑问的小伙伴,可在评论区留言你想法哟💬!

原文链接:

机器学习筑基篇,​Ubuntu 24.04 编译安装 Python 及多版本切换说到机器学习,人工智能,深度学习不免会提到Python这一门编程语言(人生苦短,及时Python),Python是一门解释型、面向对象、动态数据类型的高级程序设计语言,使用Python可以非常便利的处理各种数据。icon-default.png?t=N7T8https://mp.weixin.qq.com/s/CEIZfJiTNDAAN-3tmPZ7og

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

蓝桥杯开发板STM32G431RBT6高阶HAL库学习FreeRtos——FreeRTOS任务调度方式

一、任务调度方式 1.1抢占式调度&#xff08;不同优先级&#xff09; 主要是针对优先级不同的任务&#xff0c;每个任务都有一个优先级&#xff0c; 优先级高的任务可以抢占优先级低的任务。1.2时间片调度&#xff08;同优先级&#xff09; 主要针对优先级相同的任务&#x…

三、虚拟机连接外网

来源网站&#xff1a;山海同行 来源地址&#xff1a;https://shanhaigo.cn 本篇资源&#xff1a;以整理分类并关联本篇地址 本篇地址&#xff1a;https://shanhaigo.cn/courseDetail/1805875642621952000 一、配置虚拟机 1. 选择NAT模式 编辑虚拟网络设置&#xff0c;选择NAT…

A Threat Actors 出售 18 万名 Shopify 用户信息

BreachForums 论坛成员最近发布了涉及 Shopify 的重大数据泄露事件。 据报道&#xff0c;属于近 180,000 名用户的敏感数据遭到泄露。 Shopify Inc. 是一家总部位于安大略省渥太华的加拿大公司。 开发和营销同名电子商务平台、Shopify POS 销售点系统以及专用于企业的营销工…

SQL脚本初始化数据

创建或选择某个数据库&#xff0c;运行窗口输入&#xff1a;source,再拖入文件&#xff0c;回车即可&#xff1b; 虽然也可以使用图形化工具初始化数据&#xff0c;但是他会有内存限制&#xff0c;也就是较大的sql文件不可以初始化&#xff0c;而运行窗口没有sql文件大小限制&…

纹波和噪声的介绍以及区别

纹波和噪声的介绍 纹波和噪声都是在电源输出中出现的信号波动&#xff0c;但两者存在明显的区别。   纹波&#xff1a;是附着于直流电平之上的包含周期性与随机性成分的杂波信号。在额定输出电压、电流的情况下&#xff0c;纹波指的是输出电压中的交流电压的峰值 。狭义上的纹…

[Godot3.3.3] – 人物死亡动画 part-2

前言 在上一个 part 中已经完成了大部分的逻辑&#xff0c;现在进行一些新的修改。 增加重力 首先将 PlayerDeath 中的 AnimationPlayer 设置为自动播放。 返回 PlayerDeath.gd 并增加一个重力 300&#xff0c;防止玩家的尸体腾空运动。 var gravity 1000 _process 函数中…

短信验证码实现

一、设置AccessKey 创建用户并配置使用权限&#xff0c;使我们拥有调用 aliyunAPI 的权限&#xff0c;之后会生成 AccessKeyID 和 AccessKey密码&#xff0c;后面我们会使用到。需要注意的是 AccessKeyID 和 AccessKey密码生成后我们需要将他保存起来&#xff0c;否则后期无法查…

基于Android Studio订餐管理项目

目录 项目介绍 图片展示 运行环境 获取方式 项目介绍 能够实现登录&#xff0c;注册、首页、订餐、购物车&#xff0c;我的。 用户注册后&#xff0c;登陆客户端即可完成订餐、浏览菜谱等功能&#xff0c;点餐&#xff0c;加入购物车&#xff0c;结算&#xff0c;以及删减…

非NI GPIB卡与LabVIEW兼容性分析

在许多测试和测量应用中&#xff0c;通用接口总线&#xff08;GPIB&#xff09;是一种广泛使用的标准。尽管国家仪器公司&#xff08;NI&#xff09;提供的GPIB硬件和LabVIEW软件的组合被广泛接受和使用&#xff0c;但成本可能较高。因此&#xff0c;一些用户会考虑使用其他厂商…

科研绘图系列:R语言两组数据散点分布图(scatter plot)

介绍 展示两组数据的散点分布图是一种图形化表示方法,用于显示两个变量之间的关系。在散点图中,每个点代表一个数据点,其x坐标对应于第一组数据的值,y坐标对应于第二组数据的值。以下是散点图可以展示的一些结果: 线性关系:如果两组数据之间存在线性关系,散点图将显示出…

基于机器学习(霍特林统计量,高斯混合模型,支持向量机)的工业数据异常检测(MATLAB R2021B)

近年来&#xff0c;隨着集散控制系统、工业物联网、智能仪表等信息技术在现代工业生产系统中的应用&#xff0c;生产过程的运行状态能够以大量数据的形式被感知和记录。基于数据的故障诊断方法以过程数据为基础&#xff0c;采用统计分析、统计学习、信号处理等方法&#xff0c;…

DNS正向解析与反向解析实验

正向解析 安装bind软件 [rootlocalhost ~]# dnf install bind bind-utils -y修改主配置文件/etc/named.conf [rootlocalhost ~]# vim /etc/named.conf重启DNS服务&#xff08;named&#xff09; [rootlocalhost ~]# systemctl restart named编辑数据配置文件。在/var/named…

从零开始读RocketMq源码(一)生产者启动

目录 前言 获取源码 总概论 生产者实例 源码 A-01:设置生产者组名称 A-02:生产者服务启动 B-01&#xff1a;初始化状态 B-02&#xff1a;该方法再次对生产者组名称进行校验 B-03&#xff1a;判断是否为默认生产者组名称 B-04: 该方法是为了实例化MQClientInstance对…

Matplotlib Artist Axes

在简介里介绍了很多了&#xff0c;这里补充一点 Axes包含一个属性patch&#xff0c;是Axes对应的方框&#xff0c;可以用来设置Axes的相关属性 ax fig.add_subplot() rect ax.patch # a Rectangle instance rect.set_facecolor(green) Axes有以下方法 Axes helper metho…

MYSQL的简易安装

先下载好安装包 官网&#xff1a;https://www.mysql.com 双击运行进入界面 打开之后将左侧的产品移到右侧 点击使用的产品设置路径 之后一直下一步即可 选择主机类型 同时要记住端口号 设置密码 设置系统服务列表中的服务名称 之后一直下一步就可以了 安装完成记得配置环…

.mkp勒索病毒:深度解析与防范

引言&#xff1a; 在数字化时代&#xff0c;网络安全问题日益严峻&#xff0c;其中勒索病毒作为一种极具破坏性的恶意软件&#xff0c;严重威胁着个人用户和企业机构的数据安全。在众多勒索病毒家族中&#xff0c;.mkp勒索病毒以其强大的加密能力和广泛的传播方式&#xff0c;成…

第二次练习

目录 一、student表的增删改查 1.向student表中添加一条新记录 2. 向student表中添加多条新记录 3.向student表中添加一条新记录 4.更新表&#xff0c;grade 大于90的加0.5 5.删除成绩为空的记录 二、用户权限部分 1、创建一个用户test1使他只能本地登录拥有查询student表的权…

http读书笔记

持久化 HTTP/1.1 和一部分的 HTTP/1.0 想出了 持久连接&#xff08;HTTP Persistent Connections&#xff0c; 也称为 HTTP keep-alive 或 HTTP connection reuse&#xff09; 的方法。 持久连接的特点是&#xff0c; 只要任意一端 没有明确提出断开连接&#xff0c; 则保持 T…

信用卡没逾期就万事大吉了吗?

6月28日&#xff0c;中国人民银行揭晓了《2024年第一季度支付体系概览》&#xff0c;数据显示&#xff0c;截至本季度末&#xff0c;信用卡及借贷合一卡的总量为7.6亿张&#xff0c;与上一季度相比&#xff0c;这一数字微降了0.85个百分点。同时&#xff0c;报告还指出&#xf…

【Unity】unity学习扫盲知识点

1、建议检查下SystemInfo的引用。这个是什么 Unity的SystemInfo类提供了一种获取关于当前硬件和操作系统的信息的方法。这包括设备类型&#xff0c;操作系统&#xff0c;处理器&#xff0c;内存&#xff0c;显卡&#xff0c;支持的Unity特性等。使用SystemInfo类非常简单。它的…