解决python3.7中报找不到ssl模块的问题

在安装gunicorn后,启动时报“ImportError: No module named _ssl”,意思找不到ssl模块。
百度查了一下,发现原因是因为python从3.7.0开始,要求openssl的版本最低要为1.0.2或1.1.0,或者也可以用libressl代替openssl来使用。
遂下载了libressl2.9.1安装配置,重新编译安装python3.7.3但发现还是报错,决定还是使用openssl,解决过程如下:

1、官网下载openssl
https://www.openssl.org/source/
看了一下更新日志,下载了openssl-1.1.1b.tar.gz ,上传到Linux服务器。

2、编译安装
cd usr/cloal/openssl/
tar -zxvf openssl-1.1.1b.tar.gz
cd openssl-1.1.1b
./config --prefix=/usr/local/openssl no-zlib #注意不是configure,不需要zlib
make
make install

3、备份原配置
mv /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/include/openssl /usr/include/openssl.bak

4、新增配置
#将安装好的openssl 的openssl命令软连到/usr/bin/openssl
[root@s2-hadoop-test ~]# ln -s /usr/local/openssl/include/openssl /usr/include/openssl
#软链到升级后的libssl.so
[root@s2-hadoop-test ~]# ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/local/lib64/libssl.so
#将安装好的openssl命令软连到/usr/bin/openssl
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl

5、修改系统配置
#写入openssl库文件的搜索路径
echo “/usr/local/openssl/lib” >> /etc/ld.so.conf
#使修改后的/etc/ld.so.conf生效
ldconfig -v

6、查看是否安装成功
openssl version
显示刚安装的版本

7、重新安装python
注意:需要指定openssl的安装路径,–with-openssl
cd /usr/local/python3/Python3.7.3
./configure --prefix=/usr/local/python3 --with-openssl=/usr/local/openssl
make
make install

8、最后试一下效果
python3

import ssl

不报错就是成功了

转载自:https://blog.51cto.com/13544424/2149473
原作者:苏黎世1995

猜你喜欢

转载自blog.csdn.net/wbw0wbw/article/details/89517384
今日推荐