当前位置: 首页 > ai >正文

如何在 Ubuntu 24.04 安装 Python 3.12 ?

How to Install Python 3.12 On Ubuntu 24.04

Python 是一种高级通用编程语言,用于各种领域包括数据科学,游戏应用程序,web 和移动应用程序开发。

在这篇博文中,我们将向你展示如何在 Ubuntu 24.04 上安装 python 3.12,包括如何编译和从源代码安装 Python 3.12.6。

使用 APT 安装 python 3.12

在 Ubuntu 24.04 中,Python 3.12 在默认的 apt 包中可用,可以直接使用命令安装。

$ sudo apt install python3.12 -y

安装成功后,使用以下命令验证 python 版本。

$ python3 --version

接下来,使用下面的命令安装 pip

$ sudo apt install -y python3-pip

安装完成后,验证 pip 版本

$ pip3 --version
pip 24.0 from /usr/lib/python3/dist-packages/pip (python 3.12)
$

在撰写本文时,最新的 Python 3 版本是 Python 3.12.6,要安装这个版本,我们需要从
python 的官方网站,然后编译安装。

从源代码安装 Python 3.12.6

安装从源代码构建 Python 所需的几个包

$ sudo apt install -y pkg-config build-essential zlib1g-dev libncurses5-dev \
libgdbm-dev libnss3-dev libssl-dev libreadline-dev \
libffi-dev libsqlite3-dev wget libbz2-dev

使用 wget 命令下载 python-3.12.6 源代码包

$ wget https://www.python.org/ftp/python/3.12.6/Python-3.12.6.tgz

下载完成后,使用 tar 命令提取 tarball 的内容

$ sudo tar -xvf Python-3.12.6.tgz

切换到解压缩目录

$ cd Python-3.12.6/

接下来,configure python 源代码

$ sudo ./configure --enable-optimizations

-enable-optimizations 选项通过运行多个测试来优化 Python 二进制文件。这可能需要一些时间,但会产生更高效的二进制文件。

接下来,运行以下命令编译并安装 python 3.12.6

$ sudo make alinstall

Note : 使用 altinstall 而不是 install 可以防止覆盖默认 python3 二进制。

要确认 Python 3.12.6 已成功安装,请运行以下命令

$ python3.12 --version

管理多个 Python 版本

在某些情况下,需要在一个系统下安装多个 Python 版本,并且可能需要切换到不同版本。

update-alternatives 命令用于设置不同版本的优先级,带有优先级最高的版本成为默认版本。

$ sudo update-alternatives --install /usr/bin/python3 python3  /usr/bin/python3.10 1
$ sudo update-alternatives --install /usr/bin/python3 python3  /usr/bin/python3.12 2

要在不同的 Python 版本之间切换,请运行以下命令

$ sudo update-alternatives --config python3

系统将提示您提供首选默认 Python 版本的选择编号。您可以按 ENTER 以保持当前选择或提供与 Python 版本相对应的选择编号。

Update Alternative Python3 Ubuntu 24.04

我的开源项目

酷瓜云课堂-在线教育解决方案

  • course-tencent-cloud(酷瓜云课堂 - gitee仓库)
  • course-tencent-cloud(酷瓜云课堂 - github仓库)
http://www.xdnf.cn/news/18058.html

相关文章:

  • C语言篇:猜数字游戏的实现教程
  • 【图像算法 - 17】慧眼识“果”:基于深度学习与OpenCV的苹果智能检测系统(附完整代码)
  • 【Linux系统】进程间通信:System V IPC——消息队列和信号量
  • 「三维共振」:重构实体零售的破局模式
  • HTML应用指南:利用POST请求获取上海黄金交易所金价数据
  • 折扣大牌点餐api接口对接适合本地生活吗?
  • OVS:除了Geneve和VXLAN,还有哪些虚拟化网络协议?
  • OpenCV Python——Numpy基本操作(Numpy 矩阵操作、Numpy 矩阵的检索与赋值、Numpy 操作ROI)
  • 隐秘参数APP:全面了解手机硬件信息与优化性能
  • Redis——Redisson篇
  • Oracle algorithm的含义
  • 【Unity3D实例-功能-拔枪】角色拔枪(二)分割上身和下身
  • 【前端面试题】JavaScript核心面试题解析
  • 计算机网络---跳板机与堡垒机
  • Pytorch模型复现笔记-VGG讲解+架构搭建(可直接copy运行)+冒烟测试
  • 三维重建-动手学计算机视觉19(完结)
  • openEuler等Linux系统中如何复制移动硬盘的数据
  • 豆包 Java的23种设计模式
  • 力扣3:无重复字符的最长子串
  • 【LeetCode题解】LeetCode 33. 搜索旋转排序数组
  • Java研学-SpringCloud(二)
  • 从零到一:打包并发布你的第一个MCP AI工具服务
  • DNS总结
  • 从CVPR到NeurIPS,可变形卷积+可变形空间注意力如何斩获最佳论文
  • python+flask后端开发~项目实战 | 博客问答项目--模块化文件架构的基础搭建
  • 灰色预测模型
  • matlab tlc的文件、字符串操作
  • 【力扣热题100】双指针—— 接雨水
  • redis和cdn的相似性和区别
  • Android中切换语言的方法