Ubuntu快速安装Python3.11及多版本管理

之前文章和大家分享过,将会出一篇专栏(从电脑装ubuntu系统,到安装ubuntu的常用基础软件:jdk、python、node、nginx、maven、supervisor、minio、docker、git、mysql、redis、postgresql、mq、ollama等),目前CSDN专栏(https://blog.csdn.net/a13879442471/category_12899690.html)已经分享了**jdk、node、redis、ollama**的搭建,今天继续和大家分享ubuntu如何快速安装python3.11

那为何是3.11不是别的版本呢?主要现在Agent最主流框架LangGraph最新功能需要3.11以上版本,而且该版本也是目前大部分系统都支持的,底下我也将详细讲下python各个版本主要升级功能点!

Ubuntu 上安装 Python3.11及多版本管理器pyenv的详细步骤

一、Python3.11全自动命令安装步骤

1、更新软件包列表

sudo apt update

2、安装依赖项

sudo apt install -y software-properties-common

3、添加 deadsnakes PPA(包含较新 Python 版本):

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update

4、安装Python3.11版本

sudo apt install -y python3.11 python3.11-dev python3.11-venv

这里安装可能会有点慢,一般5分钟内可以安装完,卡着没动情况可以使用手动安装方式

5、验证安装

python3.11 --version

二、ubuntu安装多版本管理器pyenv

1、安装依赖

sudo apt install -y make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev

2、手动安装 pyenv

一键安装命令如下,注意:国内服务器无法直接安装

curl https://pyenv.run | bash

可以看到国内服务器是无法直接连接下载的

这里我们使用手动安装方式

2.1、转换pyenv的github地址

github地址:https://github.com/pyenv/pyenv#

2.2、克隆到自己的服务器

我们使用虾壳加速后的地址转一道,再克隆到用户根目录下去,这里没有安装git的可以使用wget或者curl下载

git clone https://gh.llkk.cc/https://github.com/pyenv/pyenv.git ~/.pyenv

把pyenv工程拷贝到用户根目录.pyenv下

2.3、配置环境变量

添加pyenv的目录到配置文件~/.bashrc,按以下四步执行

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
source ~/.bashrc

执行完后可以输出常用pyenv命令检查安装结果

3、常用 pyenv 命令:

  • 查看可安装版本:pyenv install --list
  • 安装指定版本:pyenv install 3.9.7
  • 查看已安装版本:pyenv versions
  • 设置全局版本:pyenv global 3.9.7
  • 设置局部版本(当前目录):pyenv local 3.8.12

三、使用pyenv安装指定版本python

接下来,我们就可以通过pyenv的命令快捷安装python各个版本了,无需再通过方式一去安装一堆组件,这里我们以使用pyenv安装python 3.9.7为例

1、安装python3.9版本

直接运行以下命令安装python3.9.7(注意:这里安装会有点慢,不过还是可以安装的,耐心等待几分钟即可)

pyenv install 3.9.7

如果你确实下载不动,也可以使用以下替代方式,先把python包下载到.pyenv/cache/,使用pyenv install命令时会优先去查找本地缓存

wget https://registry.npmmirror.com/-/binary/python/3.9.7/Python-3.9.7.tar.xz -P ~/.pyenv/cache/pyenv install 3.9.7

优先推荐第一种直接下载方式,使用wget下载到缓存目录可能后期会有一系列报错要修复

2、设置全局安装版本

这里以设置3.9.7版本为例

pyenv global 3.9.7

设置后可以看到,使用python -V查询版本时,已经从默认的2.7.18升到了3.9.7

四、注意事项

  1. 系统自带的 Python(如 /usr/bin/python3)不要卸载,可能影响系统功能
  2. 推荐使用虚拟环境管理项目依赖:
# 进到python工程目录下,使用以下命令创建虚拟环境,同层目录会多出个/myenv
python3.11 -m venv myenv
# 激活/myenv目录虚拟环境
source myenv/bin/activate

python各版本对比详解

一、推荐版本

  1. 新项目优先选择
    • Python 3.11/3.12(最新稳定版):性能优化显著,适合新项目
    • Python 3.10:长期支持(LTS),兼容性广泛
    • Python 3.9:企业级应用常用稳定版本
  2. 特殊情况选择
    • Python 3.7/3.8:仅限需要兼容旧库/框架的遗留项目
    • 避免使用 Python 2.x:已于2020年停止官方支持

二、主要版本核心区别

版本关键特性/改进适用场景
3.12性能优化(更快的解释器)、错误提示增强、类型系统改进新项目、追求性能的场景
3.11性能提升25%-60%(Faster CPython)、异常链改进、TOML标准库支持高性能计算、Web服务
3.10结构化模式匹配(match-case)、更清晰的类型提示、错误定位优化通用开发、长期维护项目
3.9字典合并操作符(``)、类型提示语法简化、垃圾回收改进
3.8海象运算符(:=)、仅位置参数(/)、f-string 调试支持需要新语法的脚本开发
3.7dataclasses 模块、异步生成器、类型注解延迟求值遗留系统维护

三、选择依据

  1. 性能需求:3.11+ 解释器速度显著提升
  2. 新特性依赖:如需要 match-case(3.10+)或类型系统改进(3.12+)
  3. 兼容性要求
    • 第三方库支持(如 TensorFlow/PyTorch 通常滞后1-2个小版本)
    • 框架版本(如 Django 4.2 要求 Python ≥3.8)
  4. 维护周期
    • Python 3.12:2027年终止支持
    • Python 3.10:2026年终止支持
    • Python 3.9:2025年终止支持

四、实践建议

  1. 多版本管理:使用 pyenv(推荐)或 conda 管理多个版本
  2. 虚拟环境:为每个项目创建独立环境(venv/pipenv/poetry
  3. 升级策略
# 使用 pyenv 安装新版本并迁移
pyenv install 3.12.0
pyenv local 3.12.0
pip freeze > requirements.txt  # 旧环境导出依赖
pip install -r requirements.txt

五、版本生命周期参考

版本发布时间终止支持时间
3.122023-102028-10
3.112022-102027-10
3.10 (LTS)2021-102026-10
3.92020-102025-10

建议优先选择仍在支持周期内的版本,以获得安全更新和漏洞修复。

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

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

相关文章

裸金属服务器和云服务器之间的差别

裸金属服务器能够直接在硬件上运行,不需要额外的虚化层,让每个应用程序或者是服务都能够在实际的硬件上运行,不需要和其他虚拟服务器来共享资源;而云服务器作为一种虚拟服务器,是通过虚拟化技术为企业提供一个独立的计…

C++ 中的几种锁机制整理

1. 互斥锁&#xff08;std::mutex&#xff09; ✅ 简介 最常用的线程同步工具。保证同一时间只能有一个线程访问临界区。 ✅ 使用方式 #include <mutex>std::mutex mtx;void safeFunction() {std::lock_guard<std::mutex> lock(mtx);// 临界区代码 }✅ 优点 简…

Graph Representation Learning【图最短路径优化/Node2vec/Deepwalk】

文章目录 Q1&#xff1a;网络性质&#xff1a;1.数据读取与邻接表构建&#xff1a;2.基本特征和连通性&#xff1a; 算法思路&#xff1a;1. 广度优先搜索&#xff08;BFS&#xff09;标记前驱:2. 回溯生成所有最短路径: 实验结果&#xff1a;复杂度分析&#xff1a; Q2&#x…

MATLAB中的概率分布生成:从理论到实践

MATLAB中的概率分布生成&#xff1a;从理论到实践 引言 MATLAB作为一款强大的科学计算软件&#xff0c;在统计分析、数据模拟和概率建模方面提供了丰富的功能。本文将介绍如何使用MATLAB生成各种常见的概率分布&#xff0c;包括均匀分布、正态分布、泊松分布等&#xff0c;并…

经典算法 (A/B) mod C

(A/B) mod C 问题描述 求(A/B)%C&#xff0c;但由于A和B实在太大了&#xff0c;我们只给出A % C&#xff0c;B % C。 (我们保证给定的A必能被B整除&#xff0c;且gcd(B,C) 1)。 输入描述 输入一行三个整数&#xff0c;分别是A % C&#xff0c;B % C&#xff0c;C。 输出…

大数据技术的主要方向及其应用详解

文章目录 一、大数据技术概述二、大数据存储与管理方向1. 分布式文件系统2. NoSQL数据库3. 数据仓库技术 三、大数据处理与分析方向1. 批处理技术2. 流处理技术3. 交互式分析4. 图计算技术 四、大数据机器学习方向1. 分布式机器学习2. 深度学习平台3. 自动机器学习(AutoML) 五、…

Deeper and Wider Siamese Networks for Real-Time Visual Tracking

现象&#xff1a; the backbone networks used in Siamese trackers are relatively shallow, such as AlexNet , which does not fully take advantage of the capability of modern deep neural networks. direct replacement of backbones with existing powerful archite…

ubuntu22.04卸载vscode

方法 1&#xff1a;通过 Snap 卸载 VSCode 如果你是通过 Snap 安装的 VSCode&#xff08;Ubuntu 22.04 默认推荐方式&#xff09;&#xff0c;按照以下步骤卸载&#xff1a; 检查是否通过 Snap 安装&#xff1a; bash snap list | grep code如果输出显示 code&#xff0c;说明…

OpenCV 背景建模详解:从原理到实战

在计算机视觉领域&#xff0c;背景建模是一项基础且重要的技术&#xff0c;它能够从视频流中分离出前景目标&#xff0c;广泛应用于运动目标检测、视频监控、人机交互等场景。OpenCV 作为计算机视觉领域最受欢迎的开源库之一&#xff0c;提供了多种高效的背景建模算法。本文将深…

Android native崩溃问题分析

最近在做NDK项目的时候&#xff0c;出现了启动应用就崩溃了&#xff0c;崩溃日志如下&#xff1a; 10:41:04.743 A Build fingerprint: samsung/g0qzcx/g0q:13/TP1A.220624.014/S9060ZCU4CWH1:user/release-keys 10:41:04.743 A Revision: 12 10:41:04.743 A ABI: arm64…

【Shell的基本操作】

文章目录 一、实验目的二、实验环境三、实验内容3.1 Shell变量与脚本基础3.2 定制终端提示符&#xff08;PS1变量&#xff09;3.3 文件查找与类型确认&#xff08;find命令&#xff09;3.4 管道命令实战&#xff08;用户登录统计&#xff09;3.5 交互式备份压缩脚本 四、总结4.…

快速选择算法:优化大数据中的 Top-K 问题

在处理海量数据时&#xff0c;经常会遇到这样的需求&#xff1a;找出数据中最大的前 K 个数&#xff0c;而不必对整个数据集进行排序。这种场景下&#xff0c;快速选择算法&#xff08;Quickselect&#xff09;就成了一个非常高效的解决方案。本文将通过一个 C 实现的快速选择算…

AQS 基本思想与源码分析

充分了解 AbstractQueuedSynchronizer 对于深入理解并发编程是有益处的&#xff0c;它是用来构建锁或者其他同步组件的基础框架&#xff0c;我们常用的同步工具类如 CountDownLatch、Semaphore、ThreadPoolExecutor、ReentrantLock 和 ReentrantReadWriteLock 内部都用到了它。…

理解位图算法:使用 C++ 实现高效数据查重

在处理海量数据时&#xff0c;我们常常需要检查某个元素是否已经存在于集合中。传统的方法如哈希表或集合容器虽然有效&#xff0c;但在数据量极大的情况下会占用大量内存。这时&#xff0c;位图算法 (Bitmap) 就成为了一种非常高效的解决方案。本文将通过分析一段使用位图算法…

数学复习笔记 12

前言 现在做一下例题和练习题。矩阵的秩和线性相关。另外还要复盘前面高数的部分的内容。奥&#xff0c;之前矩阵的例题和练习题&#xff0c;也没有做完&#xff0c;行列式的例题和练习题也没有做完。累加起来了。以后还是得学一个知识点就做一个部分的内容&#xff0c;日拱一…

1-10 目录树

在ZIP归档文件中&#xff0c;保留着所有压缩文件和目录的相对路径和名称。当使用WinZIP等GUI软件打开ZIP归档文件时&#xff0c;可以从这些信息中重建目录的树状结构。请编写程序实现目录的树状结构的重建工作。 输入格式: 输入首先给出正整数N&#xff08;≤104&#xff09;…

Python爬虫实战:研究 RPC 远程调用机制,实现逆向解密

1. 引言 在网络爬虫技术的实际应用中,目标网站通常采用各种加密手段保护其数据传输和业务逻辑。这些加密机制给爬虫开发带来了巨大挑战,传统的爬虫技术往往难以应对复杂的加密算法。逆向解密作为一种应对策略,旨在通过分析和破解目标网站的加密机制,获取原始数据。 然而,…

debugfs:Linux 内核调试的利器

目录 一、什么是 debugfs&#xff1f;二、debugfs 的配置和启用方式2.1 内核配置选项2.2 挂载 debugfs2.3 Android 系统中的 debugfs 三、debugfs 的典型应用场景3.1 调试驱动开发3.2 内核子系统调试3.3 性能分析 四、常见 debugfs 子目录与功能示例4.1 /sys/kernel/debug/trac…

lua 作为嵌入式设备的配置语言

从lua的脚本中获取数据 lua中栈的索引 3 | -1 2 | -2 1 | -3 可以在lua的解释器中加入自己自定的一些功能,其实没啥必要,就是为了可以练习下lua

棋牌室台球室快速接入美团团购接口

北极星平台从2024年12月份开始慢慢关闭&#xff0c;现在很多开发者反馈北极星token已经不能刷新了&#xff0c;全部迁移到美团团购综合平台。 申请这个平台要求很高 1、保证金费用要15万起步 2、平台必须是二级等保和安全产品 &#xff0c;一个二级等保费用10万起步 所以很多…