CentOS7 安装Python3.9以上版本时。编译报错,原因是openssl版本低
openssl-1.1.1
安装
1.前因 python 导入clickhouse_driver需要import ssl和_ssl,报错
File"/home/oracle/python3/lib/python3.7/site-packages/clickhouse_driver-0.1.2-py3.7-linux-x86_64.egg/clickhouse_driver/__init__.py", line 2, in <module> from .client import Client
File "/home/oracle/python3/lib/python3.7/site-packages/clickhouse_driver-0.1.2-py3.7-linux-x86_64.egg/clickhouse_driver/client.py", line 1, in <module> import ssl
File "/home/oracle/python3/lib/python3.7/ssl.py", line 98, in <module> import _ssl
# if we can't import it, let the error propagate
ImportError: libssl.so.1.1: cannot open shared object file: No such file or director
查看openssl安装情况
[root@localhost ~]# rpm -aq|grep openssl
openssl-1.0.1e-58.el6_10.x86_64
openssl-devel-1.0.1e-58.el6_10.x86_64
版本是1.0.1e,不符合需求
2.下载openssl
从openssl官方下载最新的代码包,因为源站下载速度过慢,所以我使⽤了腾讯云的镜像
#从官网下载
下载前先
yum remove openssl
wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz
#腾讯云提供的镜像
wget https://mirrors.cloud.tencent.com/openssl/source/openssl-1.1.1g.tar.gz
3. 编译openssl
tar -xvf openssl-1.1.1g.tar.gz
cd openssl-1.1.1g
./config shared --openssldir=/opt/openssl --prefix=/opt/openssl
make && make install
4.配置
echo "/opt/openssl/lib/" >> /etc/ld.so.conf
ln -sf /opt/openssl/bin/openssl /usr/bin/openssl #需要默认在/usr/bin/下创建openssl的软连接
ldconfig -v
openssl version
5.测试
[oracle@localhost ~]$ python3
Python 3.7.2rc1 (default, Nov 1 2019, 08:59:21)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux
Type "help","copyright", "credits" or "license" for more information.
>>> import ssl
>>>
成功!