【Linux】Linux服务器解决python3.7与openssl的低版本不兼容的问题

本文详细介绍了如何解决Python3.7在Linux系统中与默认OpenSSL版本不兼容的问题,包括下载、编译、安装高版本OpenSSL,配置环境变量,以及重新编译Python3.7的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装了Python3.7之后,遇到的一个很麻烦的坑就是与系统自带的ssl版本不兼容, Python3.7需要的openssl的版本为1.0.2或者1.1.x,这个requirements在config Python3.7的时候使用“--with-ssl”选项会报出。

Could not build the ssl module!
Python requires an OpenSSL 1.0.2 or 1.1 compatible libssl with X509_VERIFY_PARAM_set1_host().

Linux系统默认的openssl版本通常是:OpenSSL 1.0.1,可以使用命令查询系统的openssl版本:

openssl version

当前版本低于Python3.7的需求,会导致一些运行错误,比如pip3 install命令的失败,故需要进行openssl版本升级。

 (1)下载较高版本的openssl

https://www.openssl.org/source/openssl-1.1.1-pre8.tar.gz

(2)解压安装包

tar -xvzf openssl-1.1.1-pre8.tar.gz

(3)编译安装

cd openssl-1.1.1-pre8
./config --prefix=/usr/local/openssl no-zlib  # 新版openssl将安装在/usr/local/openssl目录下
make
make install

这样的话,新版本的openssl已经安装完毕,但是需要进行一些环境配置才能够继续使用。

来到/usr/bin目录下,可以发现已经有一个openssl可执行文件,这个就是系统自带的低版本,这里我们对它进行一个备份。

(4)备份原openssl配置

备份是个好的习惯,至少在安装新版本出错的时候可以回滚旧版本继续使用。

mv /usr/bin/openssl /usr/bin/openssl_bak  # backup
mv /usr/include/openssl/ /usr/include/openssl_bak

(5)备份好之后就可以为新版openssl配置软连接了

# 将安装好的openssl的openssl命令软连到/usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl

# 软链到升级后的libssl.so
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

(6)最后再修改下系统配置即可

# 写入openssl库文件的搜索路径
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf  # 需要root权限

# 使修改后的/etc/ld.so.conf生效 
ldconfig -v

(7)验证安装结果

Done.


==还是不能work==继续解决。。。

升级完新版本的openssl之后,需要对Pyhton3.7进行重新编译并更新软连接才能继续使用Python3.7。


参考博客

1、python3.7安装后ssl问题

2、Linux服务器安装python3.7

3、How to Compile and Install Python with OpenSSL Support?

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值