!/bin/bash
CentOS 7 升级 Python 3.13.2 完整脚本
功能:自动处理依赖、编译安装、环境配置
set -e # 遇到错误立即退出
echo "开始升级 Python 3.13.2..."
1. 更新系统并修复yum源
echo "步骤1: 修复yum源并更新系统..."
sudo sed -i 's/enabled=1/enabled=0/' /etc/yum/pluginconf.d/subscription-manager.conf
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
sudo yum clean all && sudo yum makecache
sudo yum update -y
2. 安装编译依赖
echo "步骤2: 安装编译依赖..."
sudo yum groupinstall -y "Development Tools"
sudo yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel \
sqlite-devel readline-devel tk-devel gdbm-devel db4-devel \
libpcap-devel xz-devel libffi-devel expat-devel perl-IPC-Cmd
3. 升级OpenSSL到1.1.1
echo "步骤3: 升级OpenSSL到1.1.1..."
cd /usr/src
if [ ! -f openssl-1.1.1w.tar.gz ]; then
wget https://www.openssl.org/source/openssl-1.1.1w.tar.gzfi
tar -xzf openssl-1.1.1w.tar.gz
cd openssl-1.1.1w
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlib
make -j$(nproc)
sudo make install
echo "/usr/local/openssl/lib" | sudo tee /etc/ld.so.conf.d/openssl.conf
sudo ldconfig
4. 升级GCC编译器
echo "步骤4: 升级GCC编译器..."
sudo yum install -y centos-release-scl
sudo yum install -y devtoolset-11
source /opt/rh/devtoolset-11/enable
4.1. 新加的------------
安装 Tcl/Tk 开发依赖
sudo yum install -y tk-devel tcl-devel
安装 Python Tk 支持包
sudo yum install -y tkinter
新加的------------
5. 下载并编译Python 3.13.2
echo "步骤5: 下载并编译Python 3.13.2..."
cd /tmp
if [ ! -f Python-3.13.2.tgz ]; then
wget https://www.python.org/ftp/python/3.13.2/Python-3.13.2.tgzfi
tar -xzf Python-3.13.2.tgz
cd Python-3.13.2
make clean
6. 配置编译参数
export LDFLAGS="-L/usr/local/openssl/lib -L/usr/lib64 -ltk8.5 -ltcl8.5"
export CPPFLAGS="-I/usr/local/openssl/include -I/usr/include"
./configure --prefix=/usr/local/python3.13 \
--with-openssl=/usr/local/openssl \
--enable-optimizations \
--enable-loadable-sqlite-extensions
7. 编译安装
echo "步骤6: 编译安装Python 3.13.2(耗时较长)..."
make -j$(nproc)
sudo make altinstall
8. 创建软链接
echo "步骤7: 创建软链接..."
sudo ln -sf /usr/local/python3.13/bin/python3.13 /usr/bin/python3.13
sudo ln -sf /usr/local/python3.13/bin/pip3.13 /usr/bin/pip3.13
9. 验证安装
echo "步骤8: 验证安装..."
python3.13 --version
pip3.13 --version
10. 测试关键模块
echo "步骤9: 测试关键模块..."
python3.13 -c "import ssl; print('SSL模块:', ssl.OPENSSL_VERSION)"
python3.13 -c "import sqlite3; print('SQLite3模块: OK')"
python3.13 -c "import tkinter; print('Tkinter模块: OK')"
echo "Python 3.13.2 升级完成!"
echo "使用命令: python3.13 和 pip3.13"