Centos7升级Python3.11,也适用于升级其他Python3版本(20250516更新)

思路:先装centos7支持的pyhotn3.6版本(不影响自带的python2.7),然后在通过源码安装更高版本,最终将pyhotn3.6替换成高版本的python环境

官方 GCC 版本要求

最低要求:GCC 7.1+(需支持 C11 标准及部分新特性)
推荐版本:GCC 8.1+ 或更高(确保完全兼容 Python 3.11+ 的新功能)

官方 OpenSSL 版本要求

最低版本:OpenSSL 1.1.1(Python 3.11+ 强制要求)

安装依赖关系

sudo yum groupinstall "Development Tools" -y
sudo yum install -y gcc gcc-c++ make zlib-devel libffi-devel \
                 openssl-devel bzip2-devel xz-devel wget \
                 sqlite-devel readline-devel tk-devel gdbm-devel \
                 libnsl2-devel python36-devel

安装高版本gcc

# 添加 SCL 源(阿里云)
cat > /etc/yum.repos.d/CentOS-SCL.repo << 'EOF'
[centos-sclo-rh]
name=CentOS-7 - SCLo rh
baseurl=https://mirrors.aliyun.com/centos-vault/7.9.2009/sclo/x86_64/rh/
enabled=1
gpgcheck=0

[centos-sclo-sclo]
name=CentOS-7 - SCLo sclo
baseurl=https://mirrors.aliyun.com/centos-vault/7.9.2009/sclo/x86_64/sclo/
enabled=1
gpgcheck=0
EOF

# 清理旧缓存并生成新缓存
yum clean all
yum makecache fast

# 安装 devtoolset-9(包含 gcc9/g++9)
yum install -y centos-release-scl
yum install -y devtoolset-9-gcc devtoolset-9-gcc-c++

# 临时启用新版本gcc
scl enable devtoolset-9 bash

# 直接配置默认使用新版本gcc(可选)
echo "source scl_source enable devtoolset-9" >> ~/.bashrc
source ~/.bashrc

# 验证gcc版本
gcc --version

安装高版本openssl

# 备份原版OpenSSL
sudo cp /usr/bin/openssl /usr/bin/openssl.bak
sudo cp -r /usr/lib64/openssl /usr/lib64/openssl.bak
sudo cp -r /usr/include/openssl /usr/include/openssl.bak
# 下载源码包
wget https://www.openssl.org/source/openssl-1.1.1t.tar.gz
# 解压并进入目录
tar -zxvf openssl-1.1.1t.tar.gz
cd openssl-1.1.1t

# 配置安装路径
./config \
  --prefix=/opt/openssl-1.1.1t \
  --openssldir=/opt/openssl-1.1.1t/etc/ssl \
  zlib-dynamic \
  -fPIC \
  shared
  
# 编译安装
make -j$(nproc)
sudo make install

# 创建兼容软链接
sudo ln -sf /opt/openssl-1.1.1t/bin/openssl /usr/local/bin/openssl

# 更新动态链接库
echo '/opt/openssl-1.1.1t/lib' | sudo tee /etc/ld.so.conf.d/openssl-1.1.1t.conf
sudo ldconfig -v

# 验证结果
/opt/openssl-1.1.1t/bin/openssl version
# 预期输出:OpenSSL 1.1.1t  7 Feb 2023

which openssl
# 预期路径:/usr/local/bin/openssl

# 以下是回滚方案
# 删除新版链接
sudo rm -f /usr/local/bin/openssl
# 恢复原版文件
sudo cp /usr/bin/openssl.bak /usr/bin/openssl
sudo cp -r /usr/lib64/openssl.bak /usr/lib64/openssl
sudo cp -r /usr/include/openssl.bak /usr/include/openssl
# 清理配置文件
sudo rm /etc/ld.so.conf.d/openssl-1.1.1t.conf
sudo ldconfig

下载和安装python包

# 下载python3.11.1版本
cd /tmp
wget https://mirrors.aliyun.com/python-release/source/Python-3.11.1.tgz

编译安装

tar zxvf Python-3.11.1.tgz
cd Python-3.11.1/

# 编译Python时指定新版OpenSSL
# 设置头文件与库文件路径
export CPPFLAGS="-I/opt/openssl-1.1.1t/include"
export LDFLAGS="-L/opt/openssl-1.1.1t/lib"

# 配置编译参数
./configure \
  --prefix=/usr/local/python3.11 \
  --with-openssl=/opt/openssl-1.1.1t \
  --enable-optimizations

make -j$(nproc) && sudo make install

修改软连接(此处有差异,根据python安装目录创建)

ln -fs /usr/local/python3.11/bin/python3.11 /usr/bin/python3
ln -fs /usr/local/python3.11/bin/pip3.11 /usr/bin/pip3
ln -fs /usr/local/python3.11/bin/python3.11-config /usr/bin/python3-config

# 升级一下pip版本
python3 -m pip install --upgrade pip

查看python版本

# 系统默认的python2
python -V
# 使用新安装的python3
python3 -V

配置pip3阿里镜像源

# 创建.pip文件夹
mkdir ~/.pip
 
# 创建pip.conf配置文件
vim ~/.pip/pip.conf
 
# 添加pip源地址为阿里云
[global]
index-url=http://mirrors.aliyun.com/pypi/simple
[install]
trusted-host=mirrors.aliyun.com

验证

pip3 config list

# 预期输出结果
global.index-url='http://mirrors.aliyun.com/pypi/simple'
install.trusted-host='mirrors.aliyun.com'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吹落的树叶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值