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

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.xdnf.cn/news/6517.html

相关文章:

  • 项目版本管理和Git分支管理方案
  • Android 中 显示 PDF 文件内容(AndroidPdfViewer 库)
  • 计算机图形学编程(使用OpenGL和C++)(第2版)学习笔记 10.增强表面细节(二)法线贴图
  • SpringCloud微服务开发与实战
  • 官方 Elasticsearch SQL NLPChina Elasticsearch SQL
  • [特殊字符][特殊字符]知识库PHP版 | ChatMoneyAI宝塔面板Docker多部署
  • Java EE初阶——wait 和 notify
  • CentOS高手之路:从进阶实战到企业级优化
  • 维智定位 Android 定位 SDK
  • 网站运维基础 | 2. cms介绍及wordpress的搭建
  • 物联网中的WiFi模式解析:AP、STA与混合模式
  • 【前端优化】vue2 webpack4项目升级webpack5,大大提升运行速度
  • 还没用过智能文档编辑器吗?带有AI插件的ONLYOFFICE介绍
  • 聊聊redisson的RLock的unlock
  • Java微服务架构实战:Spring Boot与Spring Cloud的完美结合
  • Linux 内核中 inet_accept 的实现与自定义传输协议优化
  • 在哪一个终端下运行有影响吗?pip install pillow
  • eVTOL、无人机电机功耗图和电机效率图绘制测试
  • Mendix 中的XPath 令牌(XPath Tokens)详解
  • 低空态势感知:基于AI的DAA技术是低空飞行的重要安全保障-机载端地面端
  • C++ Lambda 表达式介绍
  • 人工智能100问☞第24问:什么是生成对抗网络(GAN)?
  • 互联网应用的安全防线-身份证实名认证api-身份证三要素验证
  • BUUCTF——web刷题第一页题解
  • 【Java实战】IO流(转换流,打印流,数据流,序列化流)
  • Java随机生成邀请码 (包含字母大小写+数字)
  • 2022 Hubei Provincial Collegiate Programming Contest
  • 栈的计算方式和表达方式
  • 【深度剖析】安踏体育的数字化转型(上篇1)
  • 3D曲面上的TSP问题(二):ACO蚁群算法 + 2-opt搜索求解TSP问题