AI毛毛的blog

在CentOS7.x环境上安装Python3.11

当前的自动化测试项目使用的Python版本需要大于等于3.10,而公司的服务器操作系统为CentOS 7.9,默认的Python版本还是经典的2.7.5,源里最新的版本为3.6,因此需要手动安装新版本的Python。

这里没有采用从源码编译安装的方式,因为最近在看Flask作者的rye项目时,他提到了rye的Python二进制文件来自于Github上,indygreg的python-build-standalone项目的预编译版本:

Note that does mean, that Rye will automatically download and install an appropriate Python binary for you. These Python binaries are currently pulled from the indygreg python-build-standalone releases.

看了一下这个项目,对于Python版本、环境版本的分类还是非常完备的,于是选择了当前最新的3.11.3版本。

文件名为cpython-3.11.3+20230507-x86_64-unknown-linux-gnu-pgo+lto-full.tar.zst

安装环境准备

此文件采用了zstandard方式压缩,对于旧版本的CentOS,它的tar并不支持该压缩算法,需要安装zstd。

1
sudo yum install zstd

查阅此项目文档,发现它还需要一些运行时依赖,主要是glibc的库,一并安装了:

1
2
sudo yum install openssl-devel bzip2-devel libffi-devel
sudo yum install glibc-devel glibc-headers compat-glibc-headers

卸载掉旧的Python3和pip:

1
sudo yum -y remove python3* python2-pip

解压出二进制,配置环境变量

1
2
zstd -d cpython-3.11.3+20230507-x86_64-unknown-linux-gnu-pgo+lto-full.tar.zst
tar -xvf cpython-3.11.3+20230507-x86_64-unknown-linux-gnu-pgo+lto-full.tar

解压出的Python二进制目录位于./python/install/bin/下,将这个目录添加到Path里即可。

编辑~/.bashrc,加入下面一行:

1
export PATH="$PATH:/home/yvqa/software/python/install/bin/"

确认Python版本

1
2
source ~/.bashrc
python3 --version && pip --version

python version

刷新环境变量,确认版本正确即可。