python Can't connect to HTTPS URL because the SSL module is not available

 看这里

使用源码安装的python安装软件包时报错了,Can't connect to HTTPS URL because the SSL module is not available

此时需要重新安装openssl并再次编译安装python才可以。

1)、openssl

下载openssl源码包并解压缩,需要做的是:

./config --prefix=/usr/local/openssl-1.1.1k --openssldir=/usr/local/openssl-1.1.1k/openssl && make && sudo make install 

在/etc/ld.so.conf.d/下创建一个myopenssl.conf文件,将/usr/local/openssl-1.1.1k/lib写入该文件。

sudo ldconfig -v 

[root@localhost ~]# wget http://www.openssl.org/source/openssl-1.0.2r.tar.gz
[root@localhost ~]# tar  zxvf openssl-1.0.2r.tar.gz
[root@localhost ~]# ./config --prefix=/opt/openssl1.0.2r --openssldir=/opt/openssl1.0.2r/openssl no-zlib
[root@localhost ~]# make && make install
[root@localhost ~]#  echo "/opt/openssl1.0.2r/lib" >> /etc/ld.so.conf
[root@localhost ~]#  ldconfig -v

2)、python

解压缩后,修改ssl参数

./configure --prefix=/usr/local/python-3.9.4 --enable-optimizations --with-openssl=/usr/local/openssl-1.1.1k

打开源码解压目录中的Modules/Setup,直接搜索SSL=,将SSL=后面的目录改为前面openssl的安装目录,并把下面三行的注释去掉。

[root@localhost ~]# vim Modules/Setup
SSL=/opt/openssl1.0.2r
_ssl _ssl.c \
        -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
        -L$(SSL)/lib -lssl -lcrypto

后面就是make 和sudo make install了。