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

CentOS 7/8/9 一键安装 Python 3.10+ 并配置默认版本

第一步:准备工作 —— 安装编译依赖

根据你的 CentOS 版本,选择执行以下命令之一:

  • 对于 CentOS 7 (使用 yum):

    sudo yum groupinstall -y "Development Tools"
    sudo yum install -y openssl-devel bzip2-devel libffi-devel zlib-devel readline-devel sqlite-devel gdbm-devel xz-devel
    
  • 对于 CentOS 8 / 9 (使用 dnf):

    sudo dnf groupinstall -y "Development Tools"
    sudo dnf install -y openssl-devel bzip2-devel libffi-devel zlib-devel readline-devel sqlite-devel gdbm-devel xz-devel
    

小贴士: openssl-devel 至关重要,它确保了 Python 的 piprequests 等库能正常使用 HTTPS。libffi-devel 则是很多 C 扩展模块所必需的。

第二步:下载、编译并安装 Python 3.10+

我们将从 Python 官网下载最新稳定版的源码,并进行编译安装。这里以 Python 3.10.12 为例,你可以访问 Python 官网 获取最新的下载链接。

  1. 进入一个临时目录并下载源码:

    cd /tmp
    wget https://www.python.org/ftp/python/3.10.12/Python-3.10.12.tgz
    
  2. 解压并进入源码目录:

    tar -xf Python-3.10.12.tgz
    cd Python-3.10.12
    
  3. 配置编译选项(关键步骤):
    我们将 Python 安装到 /usr/local/python3.10 目录下,实现与系统 Python 的隔离。同时启用优化选项,提升运行性能。

    ./configure --prefix=/usr/local/python3.10 --enable-optimizations --with-ssl
    
    • --prefix=...: 指定安装路径,这是一个好习惯。
    • --enable-optimizations: 启用性能优化,编译出的 Python 解释器会更快(推荐)。
    • --with-ssl: 确保编译时链接到系统的 SSL 库。
  4. 开始编译和安装:
    使用 -j 参数可以充分利用多核 CPU 加速编译过程。

    # 使用 nproc 自动获取 CPU 核心数进行编译
    make -j$(nproc)# 使用 altinstall 安装,这是安全的关键!
    sudo make altinstall
    

    重点强调: 请务必使用 make altinstall 而非 make installaltinstall 会在安装时避免创建 pythonpython3 这样的覆盖性符号链接,从而保护系统的默认 Python 不被干扰。

第三步:配置系统默认 Python 和 pip(核心环节)

现在 Python 3.10 已经安装好了,但系统还“不认识”它。我们将使用 CentOS 强大的 alternatives 工具来管理版本,实现平滑切换。

  1. python3 命令注册新版本:

    sudo alternatives --install /usr/bin/python3 python3 /usr/local/python3.10/bin/python3.10 1
    
    • --install: 注册一个新的可选项。
    • /usr/bin/python3: 通用链接的路径。
    • python3: 链接的家族名称。
    • /usr/local/python3.10/bin/python3.10: 我们新安装的 Python 的实际路径。
    • 1: 优先级,数字越大优先级越高。后续如果安装其他版本,可以设置更高的数字。
  2. 配置 python3 的默认版本:

    sudo alternatives --config python3
    

    执行后,你会看到一个交互式菜单,列出所有已注册的 python3 版本。输入我们刚刚安装的 Python 3.10 对应的数字,然后回车即可。

    There are 2 programs which provide 'python3'.Selection    Command
    -----------------------------------------------
    *+ 1           /usr/bin/python3.62           /usr/local/python3.10/bin/python3.10Enter to keep the current selection[+], or type selection number: 2
    
  3. pip3 命令重复以上操作:

    sudo alternatives --install /usr/bin/pip3 pip3 /usr/local/python3.10/bin/pip3.10 1
    sudo alternatives --config pip3
    

    同样,在弹出的菜单中选择我们新安装的 pip3.10

  4. 创建无版本号的 pythonpip 软链接(可选但推荐):
    在现代开发中,python 通常指向 python3。我们可以创建一个软链接来简化命令。

    sudo ln -sf /usr/bin/python3 /usr/bin/python
    sudo ln -sf /usr/bin/pip3 /usr/bin/pip
    

    这一步让 pythonpip 命令直接指向 alternatives 管理的 python3pip3,实现了统一。

第四步:验证安装成果

一切就绪!现在打开一个新的终端会话,验证我们的工作成果。

# 检查 Python 版本
python --version
python3 --version# 预期输出都应该是:
# Python 3.10.12# 检查 pip 版本
pip --version
pip3 --version# 预期输出都应该是:
# pip 23.x.x from /usr/local/python3.10/lib/python3.10/site-packages/pip (python 3.10)

如果看到上述输出,恭喜你!你已经成功地在 CentOS 系统上安装并配置了 Python 3.10+,并且系统工具(如 yum/dnf)所依赖的旧版 Python 依然完好无损。

(可选)第五步:配置 pip 国内镜像源

为了提升 pip 安装包的速度,强烈建议配置国内镜像源。

  1. 创建 pip 配置目录:

    mkdir -p ~/.pip
    
  2. 创建并编辑配置文件:

    vi ~/.pip/pip.conf
    
  3. 在文件中填入以下内容(以清华大学镜像源为例):

    [global]
    index-url = https://pypi.tuna.tsinghua.edu.cn/simple[install]
    trusted-host = pypi.tuna.tsinghua.edu.cn
    

保存后,pip 的下载速度将得到质的飞跃。

http://www.dtcms.com/a/561229.html

相关文章:

  • Harmony鸿蒙开发0基础入门到精通Day08--JavaScript篇
  • OpenCV(十八):绘制文本
  • Arbess实践指南(3) - 使用Arbess+sourcefare+PostIn实现Java项目自动化部署 + 代码扫描 + 接口自动化测试
  • 一,PCB介绍
  • 重庆网站建设机构科技进步是国防强大的重要的保证
  • asp网站用什么数据库做网站怎么导入源码
  • 【Docker】容器操作和实战
  • 阿里巴巴网站如何做免费推广wordpress首页文章轮播
  • 缓存三大问题及解决方案
  • 深度学习周报(10.27~11.2)
  • 怎么做便民信息网站原创小说手机网站制作需要多少钱
  • Java外功精要——Spring AOP
  • 线程从共享队列取任务的底层机制
  • 一站式网站建设报价怎样做商城网站
  • 宜春公司网站建设网页改进方案
  • 「经典数字题」集合 | C/C++
  • centos7实测
  • 【3DV 进阶-5】3D生成中 Inductive Bias (归纳偏置)的技术路线图
  • HOT100题打卡第26天——动态规划
  • 第五章 二项式系数
  • 制作网站语言网络营销方法有什么
  • 合肥网站建站推广从零开始做电影网站
  • 电商Web 渗透测试小小清单
  • 做信息流推广需要建立网站么最基本的网站设计
  • 基于双向时序卷积网络与门控循环单元(BiTCN-GRU)混合模型的时间序列预测MATLAB代码
  • DevOps(devops/k8s/docker/Linux)学习笔记-2
  • 三点水网站建设wordpress wp-polls
  • 用数据照亮成长之路:PandaCoder Git 统计工具窗口
  • FPGA的LVDS接口电压
  • 【每天一个AI小知识】:什么是Embedding?