整个安装过程基本上参照原来的博文


但是这里有新的注意点就是,ssl使用了新的openssl11库,与原来的安装方法有较大差异,特此将我的采坑记录于此,以作备忘!大家只需要按照我的记录顺序执行,就能顺利安装完成。

1.安装依赖包

yum groupinstall "Development Tools"
 yum -y install zlib-devel bzip2-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel uuid-devel
 yum install -y openssl-devel openssl11 openssl11-devel
 yum -y install libffi-devel
 yum -y install zlib*这里需要强调几点:
a.如果一开始安装Development Tools就出错,请改为执行下面的命令
yum groups mark install "Development Tools"
 yum groups mark convert "Development Tools"
 yum groupinstall "Development Tools"

详见我的博文


b.如果你只是安装普通的openssl库,将会看到下面的错误:

To find the necessary bits, look in setup.py in detect_modules() for the module's name.
Could not build the ssl module!Python requires a OpenSSL 1.1.1 or newer

指定yum python版本 yum install python-devel_指定yum python版本

是因为OpenSSL的版本太旧,需要安装openssl11 ,并且在编译的时候设置编译FLAG

编译主要需要注意的问题是设置编译FLAG,以便使用最新的openssl库。

export CFLAGS=$(pkg-config --cflags openssl11)
export LDFLAGS=$(pkg-config --libs openssl11)

验证如下
echo $CFLAGS
echo $LDFLAGS

指定yum python版本 yum install python-devel_python_02

下面是安装openssl11的依赖库的截图

指定yum python版本 yum install python-devel_安装过程_03

 2.设置最新openssl库编译环境

export CFLAGS=$(pkg-config --cflags openssl11)
export LDFLAGS=$(pkg-config --libs openssl11)

验证如下
echo $CFLAGS
echo $LDFLAGS

3.下载python3.x源码
根据自己需求在官网
https://www.python.org/downloads/ 下载不同版本的Python3,我下载的是目前的最新版本Python3.11.0

wget https://www.python.org/ftp/python/3.11.0/Python-3.11.0.tar.xz

指定yum python版本 yum install python-devel_python_04

4.解压
tar -xvJf  Python-3.11.0.tar.xz

5.创建编译安装目录
mkdir -p /usr/local/python3 

6.安装

cd Python-3.11.0

./configure --prefix=/usr/local/python3 --enable-optimizations 

#第一个指定安装的路径,不指定的话,安装过程中可能软件所需要的文件复制到其他不同目录,删除软件很不方便,复制软件也不方便.

#第二个可以提高python10%-20%代码运行速度.

make

make install

编译和安装过程中有个别警告或错误,但是不影响。编译过程中有测试用例测试,耗费时间较长。


指定yum python版本 yum install python-devel_python3.11_05

着重看一下,ssl模块是能成功找到的。

指定yum python版本 yum install python-devel_python_06

指定yum python版本 yum install python-devel_指定yum python版本_07

 

7.重新编译的说明

一般情况下按照我上面的步骤,是能顺利编译出来的,但是如果你中途因为某些情况出错了,需要重新编译,你需要删除解压出来的文件夹和自定义安装文件夹,再分别重新解压和重新创建,为的是得到一个全新的编译环境,不受上次遗留错误的影响。

rm -fr Python-3.11.0

rm -fr /usr/lobal/python3

8.创建软链接
ln -s /usr/local/python3/bin/python3 /usr/local/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/local/bin/pip3

9.验证安装是否成功
python3 -V
pip3 -V
目前我们可以看到python和python3是共存的。

10.测试安装pip3了能不能正常使用
下面安装第三方库(随意下载一个就行),实测是可行的 
pip3 install pillow
 

 

指定yum python版本 yum install python-devel_python_08

11.配置pip源为国内源
上面的安装是以root用户进行的,现在回归通常的使用模式,切换到普通用户taoyx
su taoyx
cd ~

新建pip配置文件

mkdir -p ~/.pip
touch ~/.pip/pip.conf

编辑配置文件,配置如下。

vim ~/.pip/pip.conf

[global]
index-url=https://pypi.tuna.tsinghua.edu.cn/simple/
extra-index-url=
        http://pypi.douban.com/simple/         http://mirrors.aliyun.com/pypi/simple/ #proxy = [user:passwd@]proxy.server:port
[install]
trusted-host=
        pypi.tuna.tsinghua.edu.cn
        pypi.douban.com
        mirrors.aliyun.com
ssl_verify: false

上面配置了清华,豆瓣,阿里的源,并且关闭了ssl验证。当然如果有需要还可以设置代理,把注释掉的proxy那行放开即可。

再验证一下

pip3 install --upgrade pip
结果如下

指定yum python版本 yum install python-devel_Python_09

以上就是Centos7安装最新版Python3的全步骤。

参考文献
[1].https://zhuanlan.zhihu.com/p/491817098