CentOS 安装 Python 3.12 实战记录
CentOS 自带的 Python 往往偏旧,做开发时很容易碰到版本不够用的情况。Python 3.12 在性能和类型提示上都有改进,手头的项目只要依赖新版特性,通常就得自己装一份。
这类安装我更倾向于源码编译。省事是省事,但好处也很直接:版本可控,装到单独目录,不会把系统自带 Python 搞乱。
安装前先补齐依赖
编译之前先把基础工具装好。少一个库,后面 configure 或 make 就会报错,排查起来很烦。
先更新系统软件包:
sudo yum update -y
然后安装编译所需依赖:
sudo yum install -y gcc openssl-devel bzip2-devel libffi-devel zlib-devel wget
几个关键包的作用比较明确:
gcc:编译器,没有它没法把源码编成可执行程序;openssl-devel:Python 的 HTTPS / SSL 能力靠它;libffi-devel:一些依赖 C 扩展的包会用到;wget:后面下载源码包要用。
下载 Python 3.12 源码
源码我一般放在 /usr/local/src,路径清楚,也方便后续清理。
cd /usr/local/src
Python 3.12.4 是文中使用的版本,后续如果有更新,直接替换版本号就行。
清华镜像下载:
wget https://mirrors.tuna.tsinghua.edu.cn/python/3.12.4/Python-3.12.4.tgz
官方源下载:
wget https://www.python.org/ftp/python/3.12.4/Python-3.12.4.tgz
下载完看一眼目录,确认 Python-3.12.4.tgz 在就行。
编译并安装
先解压:
sudo tar -zxvf Python-3.12.4.tgz
进入源码目录:
cd Python-3.12.4
配置安装路径时,我建议直接放到独立目录里,别覆盖系统默认环境:
sudo ./configure --enable-optimizations --prefix=/usr/local/python3.12 --with-openssl=/usr/include/openssl
这里有三个参数比较关键:
--enable-optimizations:会增加编译时间,但能换来一些性能优化;--prefix=/usr/local/python3.12:安装到独立目录,后面管理更省心;--with-openssl=/usr/include/openssl:避免后面 pip 走 HTTPS 时出问题。
接着编译:
sudo make -j2
