Python3.X安装后 pip3报错 ModuleNotFoundError: No module named '_ssl'

Python3.7需要openssl1.0.2以上版本, 而CentOS6默认只到openssl1.0.1,因此需要先额外安装openssl。

为了避免与系统已有openssl冲突,因此安装到其他路径:

wget https://www.openssl.org/source/openssl-1.1.1a.tar.gz
tar -zxvf openssl-1.1.1a.tar.gz 
cd openssl-1.1.1a
./config --prefix=/usr/local/openssl111 --openssldir=/usr/local/openssl111
make
make install

 

随后编译安装Python3,注意重点来了,在此之前需要进行一个操作:

echo "/usr/local/openssl111/lib" >> /etc/ld.so.conf.d/openssl111-x86_64.conf 
ldconfig

这是因为如果不在这里新增lib的具体路径,在安装Python的时候,即便指定了--with-openssl=/usr/local/openssl111参数,由于安装脚本中OPENSSL_LIBS=-lssl -lcrypto,会继续到系统路径中尝试寻找openssl的库文件,结果make的时候依然会报 libssl.so.1.1 No such file or directory。

之后编译python即可:

./configure --with-openssl=/usr/local/openssl111
make clean
make
make install


#随后就可以正常使用ssl了

[root@localhost Python-3.7.1]# python3
Python 3.7.1 (default, Dec 10 2018, 15:08:09) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-23)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import ssl
>>> 

 

你可能感兴趣的:(python)