目录
在CentOS系统上编译安装Python 3.9.9,可按以下步骤操作:
1. 安装必要的依赖包
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel libffi-devel gcc make -y
2. 下载Python 3.9.9源码包
cd /tmp
wget https://www.python.org/ftp/python/3.9.9/Python-3.9.9.tgz
tar -zxvf Python-3.9.9.tgz
cd Python-3.9.9
3. 配置编译选项
./configure --prefix=/usr/local/python3.9 --enable-optimizations --with-ensurepip=install
# --enable-optimizations 是优化选项(LTO,PGO 等)加上这个 flag 编译后,性能有 10% 左右的优化,但是这会明显的增加编译时间,老久了,gcc版本
# --with-ensurepip=install 是 Python 源码编译配置时的一个选项,其作用是确保在编译安装 Python 的同时,将 pip(Python 包管理器)也一并安装
4. 编译并安装
make -j $(nproc) # 并行编译,加快速度
# 有报错,执行 make clean 再执行make
make install
5. 设置Python 3.9为默认版本
sudo alternatives --install /usr/bin/python3 python3 /usr/local/python3.9/bin/python3.9 1
sudo alternatives --config python3
sudo alternatives --install /usr/bin/pip pip /usr/local/python3.9/bin/pip3 1
alternatives --config pip
6. 验证安装结果
python3 --version
pip --version
知识延伸
通过 alternatives 系统实现软链接的智能切换。
1. alternatives --install 命令
sudo alternatives --install /usr/bin/python python /usr/local/bin/python3.9 1
- 作用:将 Python 3.9.9 添加到系统的可替代程序列表中,允许用户在多个 Python 版本间切换。
- 参数解释:
- /usr/bin/python:符号链接路径(最终用户调用的命令)。
- python:替代组名称(用于标识同类程序,如 python、java 等)。
- /usr/local/bin/python3.9:实际程序路径(新安装的 Python 3.9.9)。
- 1:优先级(数字越大优先级越高,多个版本共存时决定默认值)。
2. alternatives --config 命令
sudo alternatives --config python
执行后效果:
有 2 个程序提供“python”。
选择 路径 优先级 状态
------------------------------------------------------------
* 0 /usr/bin/python3.6 6 自动模式
1 /usr/bin/python3.6 6 手动模式
2 /usr/local/bin/python3.9 1 手动模式
要维持当前值[*]请按<回车键>,或者键入选择的编号:
注意事项
- 使用
altinstall
避免覆盖系统默认的Python - 若需使用
pip
,建议升级到最新版本:sudo pip3.9 install --upgrade pip
执行上述步骤后,Python 3.9.9将被安装到系统中,可通过python3.9
和pip3.9
命令使用。