CentOS 8 升级 Python到3.9.7

在 CentOS 8 上升级 Python 可以通过多种方式实现,但需要注意的是,CentOS 的系统工具和一些软件包依赖于默认的 Python 版本(通常是 Python 3.6)。因此,在升级 Python 时需要谨慎操作,以免影响系统的正常运行。

以下是几种常见的方法来安装更高版本的 Python 而不替换系统默认的 Python:

方法一:使用 Software Collections (SCL)

Software Collections 提供了一个在同一系统上并行安装多个版本软件的方式。

启用 SCL 仓库

sudo yum install centos-release-scl

列出可用的 Python 版本

sudo yum list scl | grep python

安装所需的 Python 版本,例如 Python 3.8:

sudo yum install rh-python38

启用新安装的 Python 版本

scl enable rh-python38 bash

验证安装

python --version # 输出应为 Python 3.8.x

方法二:从源码编译安装

如果你需要特定版本的 Python 并且不想使用 SCL,可以从源码编译安装。

安装必要的构建工具和库

sudo yum groupinstall "Development Tools" 
sudo yum install openssl-devel bzip2-devel libffi-devel zlib-devel readline-devel sqlite-devel wget

下载并解压 Python 源码,例如 Python 3.9:

cd /usr/src 
sudo wget https://www.python.org/ftp/python/3.9.7/Python-3.9.7.tgz 
sudo tar xzf Python-3.9.7.tgz

编译并安装 Python

cd Python-3.9.7 
sudo ./configure --enable-optimizations 
sudo make altinstall

使用 altinstall 是为了避免覆盖系统默认的 Python。

验证安装

python3.9 --version # 输出应为 Python 3.9.7

方法三:使用 pyenv

pyenv 是一个非常方便的工具,可以让你轻松地管理多个 Python 版本。

安装依赖项

sudo yum install gcc zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel tk-devel libffi-devel xz-devel

安装 pyenv

curl https://pyenv.run | bash

将 pyenv 添加到你的 shell 环境。根据你的 shell 类型,编辑相应的配置文件(例如 .bashrc.zshrc)并添加以下行:

export PATH=" $ HOME/.pyenv/bin: $ PATH" 
eval " $ (pyenv init --path)" 
eval " $ (pyenv virtualenv-init -)"

重新加载 shell 配置文件

source ~/.bashrc # 或者 source ~/.zshrc

安装所需的 Python 版本,例如 Python 3.9:

pyenv install 3.9.7

设置全局或局部 Python 版本

pyenv global 3.9.7 # 或者在项目目录下设置局部版本 pyenv local 3.9.7

验证安装

python --version # 输出应为 Python 3.9.7

通过以上方法,你可以在 CentOS 8 上安装和使用更高版本的 Python,同时保持系统默认的 Python 版本不变。选择适合你的方法进行操作即可。

评论