1 安装编译所需的依赖
[root@localhost ~]# yum -y update
[root@localhost ~]# yum -y install openssl-devel libffi-devel bzip2-devel

[root@localhost ~]# yum -y groupinstall “Development Tools”
[root@localhost ~]# yum install -y ncurses-devel gdbm-devel xz-devel sqlite-devel tk-devel uuid-devel readline-devel bzip2-devel libffi-devel

注意:先升级CentOS7升级OpenSSL
原因:CentOS7的yum仓库中,OpenSSL的版本为OpenSSL 1.0.2k-fips,比较旧,在后续安装某些软件时(如Python3.10),要求更高版本的OpenSSL,现在我们来手动升级OpenSSL。
下载最新版本的源码包:[root@localhost ~]# wget https://www.openssl.org/source/openssl-1.1.1q.tar.gz –no-check-certificate
解压缩并进入目录:
[root@localhost ~]# tar zxf openssl-1.1.1q.tar.gz
[root@localhost ~]# cd openssl-1.1.1q
[root@localhost ~]# ./config –prefix=/usr/local/openssl-1.1.1
[root@localhost ~]# make && make install

2 下载源代码 Python 官方下载地址:https://www.python.org/downloads/ 或使用wget下载
暂时无法在飞书文档外展示此内容
打开链接,可以看到各个版本的 Python:
在“Gzipped source tarball”处单击鼠标右键,从弹出菜单中选择“复制链接地址”,即可得到.tgz格式的源码压缩包地址。 如下执行命令: [root@localhost ~]# wget https://www.python.org/ftp/python/3.10.10/Python-3.10.10.tgz 解压源码包: [root@localhost ~]# tar -zxvf Python-3.10.10.tgz
3 编译 使用 make 工具进行编译: [root@localhost ~]# ./configure –enable-optimizations –with-openssl=/usr/local/openssl-1.1.1 –with-openssl-rpath=auto

[root@localhost ~]# make && make install

[root@localhost ~]# make && make install (编译安装报错)

导致原因
在低版本的gcc版本,使用 gcc 命令并带有 –enable-optimizations 参数时会出现上面问题。在 gcc 8.1.0 此问题已经修复。
解决方法
1、升级gcc至 8.1.0,不是很推荐,可能会影响其他软件的编译。
2、./configure参数中去掉 –enable-optimizations。然后执行下面的命令:
[root@localhost ~]#./configure –with-openssl=/usr/local/openssl-1.1.1 –with-openssl-rpath=auto
这里的–prefix=/usr/local用于指定安装目录(建议指定)。如果不指定,就会使用默认的安装目录。
[root@localhost ~]# make && make install
[root@localhost Python-3.10.10]# python3 安装成功

python命令默认调用的是 Python 2.x 开发环境,如果你习惯使用 Python 3.x,感觉每次输入python3命令有点麻烦,那么你可以修改配置,让python命令转而调用 Python 3.x 开发环境。具体命令如下:
[root@localhost ~]# unlink /usr/bin/python
[root@localhost ~]# ln -s /usr/local/bin/python3.10 /usr/bin/python
上述命令执行完成以后,再次在终端输入python命令,进入的就是 Python 3.8 的交互式开发环境了。
