标题:Python解决SSL不可用问题 出处:沧海一粟 时间:Sat, 11 Nov 2023 10:51:14 +0000 作者:jed 地址:http://www.dzhope.com/post/1270/ 内容: 一、问题描述: 报错概述: WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available. ## 警告:pip配置了需要TLS/SSL的位置,但是Python中的SSL模块不可用。 二、解决方案: 首先要明白python版本需要和openssl的版本需要相对匹配的,在Python3.7之后的版本,依赖的openssl,必须要是1.1或者1.0.2之后的版本,或者安装了2.6.4之后的libressl,linux自带的openssl版本过低。 1、查看liunx系统的openssl版本信息: openssl version 如图所示:小编的买的liunx服务器自带的openssl版本为1.1.1a ,然而对于小编来说,要安装python3.10的版本来说,openssl的版本太低了,因此需要更新openssl的版本才能满足要求; 先卸载之前安装的旧版本 yum -y remove openssl openssl-devel 2、更新openssl版本: (1)安装相关依赖 yum install gcc libffi-devel zlib* openssl-devel yum -y install perl-IPC-Cmd 安装perl-CPAN [root@centos7 ~]# yum install -y perl-CPAN 进入CPAN的shell模式,首次进入需要配置shell,按照提示操作即可(本人perl小白,全部选择默认配置,高手请根据提示自行选择) [root@centos7 ~]# perl -MCPAN -e shell 在shell中安装缺少的模块 cpan[1]> install IPC/Cmd.pm 安装成功后,重新编译OpenSSL即可 (2)官网下载openssl版本 wget https://www.openssl.org/source/openssl-3.0.1.tar.gz (3)解压openssl tar -zxvf openssl-3.0.1.tar.gz (4)编译openssl # 进入解压后的文件目录,切记一定要进入该目录才能继续执行后续命令 cd openssl-3.0.1 其中--prefix是指定安装目录的,shared zlib库是在安装时寻找zlib库依赖的 # 配置(configure) ./config --prefix=/usr/local/openssl # 编译 make # 安装 make install 最后重新查看openssl版本 openssl version #建立新的软链接 ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl ln -s /usr/local/openssl/include/openssl /usr/include/openssl #更新动态链接库 echo "/usr/local/openssl/lib64" >> /etc/ld.so.conf ldconfig -v ldd /usr/local/openssl/bin/openssl ========================== 2、重新编译python 安装依赖 yum -y update yum -y install zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel xz xz-devel libffi-devel (1)官网下载python wget https://www.python.org/ftp/python/3.10.5/Python-3.10.5.tgz (2)解压python tar -xzvf Python-3.10.5.tgz (3)编译 python ./configure --with-ssl --prefix=/usr/local/python3/ make && make install 4)建立软连接 sudo ln -sf /usr/local/python3/bin/python3.10 /usr/bin/python sudo ln -sf /usr/local/python3/bin/python3.10 /usr/bin/python3 sudo ln -sf /usr/local/python3/bin/pip3.10 /usr/bin/pip sudo ln -sf /usr/local/python3/bin/pip3.10 /usr/bin/pip3 Generated by Bo-blog 2.1.1 Release