1、原因
本人环境:centos6,openssl 1.0.1
查询原因是openssl 1.0.1,不支持python3版本,这点可以确定,因为python2 import ssl就不报错
2、解决方案
升级openssl版本
1、下载openssl
wget http://www.openssl.org/source/openssl-1.1.1.tar.gz
2、安装依赖包
yum install -y zlib zlib-dev openssl-devel sqlite-devel bzip2-devel libffi libffi-devel gcc gcc-c++
3、安装openssl
openssl配置是用config,而不是configure,另外openssl编译安装依赖zlib动态库,所以一定要shared zlib
wget http://www.openssl.org/source/openssl-1.1.1.tar.gz
tar -zxvf openssl-1.1.1.tar.gz
cd openssl-1.1.1
./config --prefix=$HOME/openssl shared zlib
make && make install
4、设置环境变量
主要用于指定查找共享库(动态链接库)
echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/openssl/lib" >> $HOME/.bash_profile
source $HOME/.bash_profile
5、卸载python和软连接
rpm -qa|grep python3|xargs rpm -ev --allmatches --nodeps # 删除python3
whereis python3 |xargs rm -frv 删除所有残余文件
6、重新安装python3
wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tar.xz
tar -xvJf Python-3.7.2.tar.xz
mkdir /usr/local/python3
cd Python-3.7.2
# 编译指定刚安装openssl
./configure --prefix=/usr/local/python3 --enable-optimizations --with-openssl=$HOME/openssl
make clean
make && make install
7、创建python3软链接
ln -s /usr/local/python3/bin/python3 /usr/local/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/local/bin/pip3
8、测试