编程爱好者之家

python执行requests请求提示Can‘t connect to HTTPS URL because the SSL module is not available解决方案

2024-07-03 16:57:26 6

最近在linux系统里安装python3.11之后,使用pip安装第三方库、requests库进行网络请求都会报这个错

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

查找了网上很多方法,看见了一个大佬的,是在pip 的命令最后面加上:

-i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com

加上之后确实可以安装第三方库了,但是在我用requests库进行请求的时候

又报了这个错

 但是请求http的话,是不会报错的


解决办法:

安装最新版的OpenSSL:

        进入 /usr/local 目录:


cd /usr/local


(建议跟我一样的目录,后面不用改命令)


        下载最新版的OpenSSL:

wget https://www.openssl.org/source/openssl-3.0.2.tar.gz --no-check-certificate

image.png

      下载成功后解压:


tar -zxvf openssl-3.0.2.tar.gz


image.png


        解压成功后进入解压后的目录里:


cd openssl-3.0.2/


         输入命令配置:


./Configure --prefix=/usr/local/openssl


image.png


         出现这个代表配置成功,但是大概率会失败

image.png


        一般会失败报错:Can‘t locate IPC/Cmd.pm in

image.png


        原因是因为缺少IPC/Cmd.pm模块,需要安装这个模块

        先安装perl-CPAN: 


yum install -y perl-CPAN

image.png


         进入perl shell中:


perl -MCPAN -e shell


         进入后第一步选yes,第二步选manual,第三步选yes

image.png


         出现以下cpan[1]>就可以了

image.png

        安装缺少的模块:


install IPC/Cmd.pm


         安装成功


image.png


         按Ctrl+D退出cpan


         重新输入命令配置:


./Configure --prefix=/usr/local/openssl


         配置成功

image.png



         配置安装:


make && make install


image.png


         安装成功后进入到安装后的目录里:


cd /usr/local/openssl

image.png


可以看到目录里没有lib目录,只有lib64,我们需要手动复制一个lib目录出来(这一步非常关键)


cp -rf /usr/local/openssl/lib64 /usr/local/openssl/lib


image.png


         至此,OpenSSL安装成功


重新安装python3:

卸载python3(之前没有安装的话,跳过这一步):

        先检查自己是否安装了python3:


python3 --version

image.png


 卸载掉之前安装的python3,直接删除掉自己安装python3的目录就可以了


rm -rf /usr/local/python3


image.png


安装python3:

        下载安装包:


        一、linux系统里直接下载(速度比较慢,不推荐):


        进入到/usr/local目录下(推荐使用一样的目录)


cd /usr/local


image.png


        输入命令下载:


wget https://www.python.org/ftp/python/3.11.2/Python-3.11.2.tgz


  

        解压压缩包:


tar -xvf Python-3.11.2.tgz


        下载安装依赖:


sudo yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel


        进入解压的python目录里


cd Python-3.11.2/


        配置编译模式(后面的参数非常重要,一定不要省略):


./configure --prefix=/usr/local/python3 --with-openssl=/usr/local/openssl --with-openssl-rpath=auto

image.png


        编译模式配置成功后使用make -j加快编译


make -j


image.png


        编译完成后,安装:


make install


        安装完成:

image.png


 添加软链接,让python3和pip3这两个命令指向刚刚安装的python3.11


ln -s /usr/local/python3/bin/python3.11 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3.11 /usr/bin/pip3


 如果这个错

image.png

需要删除之前建立的软连接

rm -rf /usr/bin/python3
rm -rf /usr/bin/pip3

image.png


再重新添加软连接

image.png

检查python3是否安装完毕:


python3 --version


image.png


         测试一下pip3能不能正常下载第三方库(可以成功下载了):

image.png

         测试一下requests能不能发起https的请求(可以成功发起请求了):

image.png

       至此python3安装成功 


同类文章