【Linux】Linux服务器解决python3.7与openssl的低版本不兼容的问题
openssl
传输层安全性/安全套接层及其加密库
项目地址:https://gitcode.com/gh_mirrors/ope/openssl
免费下载资源
·
安装了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。
参考博客
GitHub 加速计划 / ope / openssl
25.12 K
9.99 K
下载
传输层安全性/安全套接层及其加密库
最近提交(Master分支:1 个月前 )
fd39d1c8
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/25095)
1 个月前
ae87c488
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/25095)
1 个月前
更多推荐
已为社区贡献1条内容
所有评论(0)