安装python3要求openssl-1.0.2版本以上,不需要卸载原有openssl,直接安装新版本openssl,我选择openssl-1.1.1
1. 安装openssl-1.1.
wget http://artfiles.org/openssl.org/source/old/1.1.1/openssl-1.1.1.tar.gz
tar -zxvf openssl-1.1.1.tar.gz
cd openssl
tar -zxvf openssl-1.1.1.tar.gz
cd openssl-1.1.1
./config shared zlib
make && make install
rm -rf /usr/lib64/libssl.so
rm -rf /usr/lib64/libcrypto.so
ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so
ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so
安装路径为/usr/local/bin/openssl
测试是否成功
/usr/local/bin/openssl version
OpenSSL 1.1.1 11 Sep 2018
能够看到版本号,说明安装成功。
2. 安装python3
官网下载python3.9.16,https://www.python.org/ftp/python/3.9.16/Python-3.9.16.tgz
tar -zxvf Python-3.9.16.tgz
cd Python-3.9.16.tgz
vim Modules/Setup
修改Setup文件,去掉对应注释
#SSL=/usr/local/ssl
_ssl _ssl.c
-DUSE_SSL -I( S S L ) / i n c l u d e − I (SSL)/include -I(SSL)/include−I(SSL)/include/openssl
-L$(SSL)/lib -lssl -lcrypto
保存退出
开始编译安装
./configure --prefix=/usr/local/python3 --with-openssl=/usr/local/bin/openssl --enable-optimizations
make
make install
注意:其他版本不是这个目录/usr/local/bin/openssl
查看是否这个版本和这个目录
/usr/local/bin/openssl version
--prefix:指定python安装路径
--with-openssl:指定openssl位置
安装成功后引入ssl模块测试
参考文章:https://blog.csdn.net/sunshine3257/article/details/127565287
碰到两个报错:
报错一:openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file
[root@localhost ~]# find / -name libssl.so.1.1
/usr/local/lib64/libssl.so.1.1
[root@localhost ~]# ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1
[root@localhost ~]# ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
[root@localhost ~]# openssl version
OpenSSL 1.1.1 11 Sep 2018
参考文章:https://blog.csdn.net/weixin_43296326/article/details/88680329
报错二:SystemError: <built-in function compile> returned NULL without setting an error
需要重新清理一下,再进行命令
make && make install
即上述代码执行 之前,要先进行如下操作
make clean