机器学习筑基篇,​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.4

ls -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.mfbz.cn/a/780749.html

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

相关文章

【MySQL】逻辑架构与存储引擎

一、逻辑架构 1、MySQL逻辑架构 我们可以根据上图来对sql的执行过程进行分析 第一步&#xff1a;客户端与服务器建立一个连接&#xff0c;从连接池中分配一个线程处理SQL语句第二步&#xff1a;SQL接口接受SQL指令第三步&#xff1a;如果是5.7版本&#xff0c;就会先去缓存中…

Facebook数据仓库的变迁与启示

❃博主首页 &#xff1a; <码到三十五> ☠博主专栏 &#xff1a; <mysql高手> <elasticsearch高手> <源码解读> <java核心> <面试攻关> ♝博主的话 &#xff1a; <搬的每块砖&#xff0c;皆为峰峦之基&#xff1b;公众号搜索(码到…

史上最全的自抗扰控制(ADRC)学习资料

史上最全的自抗扰控制&#xff08;ADRC&#xff09;学习资料 需要的私信我~ 需要的私信我~ 需要的私信我~ ​ 本文将作者近些年来学习ADRC算法的学习资料进行汇总&#xff0c;整理了这一版相对较全的学习资料&#xff0c;包含参考文献以及仿真案例&#xff0c;适合初学者入门&…

STM32实现看门狗(HAL库)

文章目录 一. 看门狗1. 独立看门狗&#xff08;IWDG&#xff09;1.1 原理1.2 相关配置1.3 相关函数 2. 窗口看门狗&#xff08;WWDG&#xff09;2.1 原理2.2 相关配置2.3 相关函数 一. 看门狗 单片机在日常工作中常常会因为用户配置代码出现BUG&#xff0c;而导致芯片无法正常工…

21天学通C++:第九、十章节

第九章&#xff1a;类和对象 带默认值的构造函数参数 注意&#xff1a;默认构造函数是调用时可不提供参数的构造函数&#xff0c;而并不一定是不接受任何参数的构造函数。 因此&#xff0c;下面的构造函数虽然有两个参数&#xff0c;但它们都有默认值&#xff0c;因此也是默认…

CurrentHashMap巧妙利用位运算获取数组指定下标元素

先来了解一下数组对象在堆中的存储形式【数组长度&#xff0c;数组元素类型信息等】 【存放元素对象的空间】 Ma 基础信息实例数据内存填充Mark Word,ClassPointer,数组长度第一个元素第二个元素固定的填充内容 所以我们想要获取某个下标的元素首先要获取这个元素的起始位置…

Java 有什么必看的书?

Java必看经典书有这两本&#xff1a; 1、Java核心技术速学版&#xff08;第3版&#xff09; 经典Java开发基础书CoreJava速学版本&#xff01;Java入门优选书籍&#xff0c;更新至Java17&#xff0c;内容皆是精华&#xff0c;让Java学习更简单&#xff0c;让Java知识应用更快速…

fasttext工具介绍

fastText是由Facebook Research团队于2016年开源的一个词向量计算和文本分类工具。尽管在学术上并未带来巨大创新&#xff0c;但其在实际应用中的表现却非常出色&#xff0c;特别是在文本分类任务中&#xff0c;fastText往往能以浅层网络结构取得与深度网络相媲美的精度&#x…

STM32CubeMX实现4X5矩阵按键(HAL库实现)

为了实现计算器键盘&#xff0c;需要使用4X5矩阵按键&#xff0c;因此&#xff0c;我在4X4矩阵键盘上重新设计了一个4X5矩阵按键。原理图如下&#xff1a; 原理描述&#xff1a; 4X5矩阵按键&#xff0c;可以设置4个引脚为输出&#xff0c;5个引脚为输入模式&#xff0c;4个引…

MPS---MPQ86960芯片layout设计总结

MPQ86960 是一款内置功率 MOSFET 和栅极驱动的单片半桥。它可以在宽输入电压 (VIN) 范围内实现高达 50A 的连续输出电流 (IOUT)&#xff0c;通过集成MOSFET 和驱动可优化死区时间 (DT) 并降低寄生电感&#xff0c;从而实现高效率。 MPQ86960 兼容三态输出控制器&#xff0c;另…

Ubantu22.04 通过FlatPak安装微信

Ubuntu22.04 下使用Flatpak稳定安装微信&#xff01; 国际惯例&#xff0c;废话不多说&#xff0c;先上效果图。为啥使用Flatpak,因为Wechat官方只在FlatPak发布了最新的版本。之前使用了Wine以及Dock安装Wechat,效果都不是很理想&#xff0c;bug很多。所以使用了FlatPak。 Fl…

GRPC使用之ProtoBuf

1. 入门指导 1. 基本定义 Protocol Buffers提供一种跨语言的结构化数据的序列化能力&#xff0c;类似于JSON&#xff0c;不过更小、更快&#xff0c;除此以外它还能用用接口定义(IDL interface define language)&#xff0c;通protoc编译Protocol Buffer定义文件&#xff0c;…

【Spring Cloud】微服务的简单搭建

文章目录 &#x1f343;前言&#x1f384;开发环境安装&#x1f333;服务拆分的原则&#x1f6a9;单一职责原则&#x1f6a9;服务自治&#x1f6a9;单向依赖 &#x1f340;搭建案例介绍&#x1f334;数据准备&#x1f38b;工程搭建&#x1f6a9;构建父子工程&#x1f388;创建父…

关闭vue3中脑瘫的ESLine

在创建vue3的时候脑子一抽选了ESLine,然后这傻卵子ESLine老是给我报错 博主用的idea开发前端 ,纯粹是用不惯vscode 关闭idea中的ESLine,这个只是取消红色波浪线, 界面中的显示 第二步,在vue.config.js中添加 lintOnSave: false 到这里就ok了,其他的我试过了一点用没有

Google Java Style Guide深度解读:打造优雅的代码艺术

在软件工程的世界里&#xff0c;代码不仅仅是实现功能的工具&#xff0c;它也是团队之间沟通的桥梁&#xff0c;是软件质量和可维护性的直接反映。Google Java Style Guide作为一套广受认可的编码规范&#xff0c;不仅定义了代码的书写规则&#xff0c;更深刻地影响着Java开发者…

绿色金融相关数据合集(2007-2024年 具体看数据类型)

数据类型&#xff1a; 1.绿色债券数据&#xff1a;2014-2023 2.绿色信贷相关数据&#xff1a;2007-2022 3.全国各省及地级市绿色金融指数&#xff1a;1990-2022 4.碳排放权交易明细数据&#xff1a;2013-2024 5.绿色金融试点DID数据&#xff1a;2010-2023 数据来源&#…

python操作SQLite3数据库进行增删改查

python操作SQLite3数据库进行增删改查 1、创建SQLite3数据库 可以通过Navicat图形化软件来创建: 2、创建表 利用Navicat图形化软件来创建: 存储在 SQLite 数据库中的每个值(或是由数据库引擎所操作的值)都有一个以下的存储类型: NULL. 值是空值。 INTEGER. 值是有符…

Linux—网络设置

目录 一、ifconfig——查看网络配置 1、查看网络接口信息 1.1、查看所有网络接口 1.2、查看具体的网络接口 2、修改网络配置 3、添加网络接口 4、禁用/激活网卡 二、hostname——查看主机名称 1、查看主机名称 2、临时修改主机名称 3、永久修改主机名称 4、查看本…

【python】pyqt5大学生成绩信息管理系统-图形界面(源码+报告)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…