前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux更新openssl版本,以解决Python的requests库 import失败

Linux更新openssl版本,以解决Python的requests库 import失败

作者头像
huolong
发布2024-01-10 09:32:53
4970
发布2024-01-10 09:32:53
举报
文章被收录于专栏:技术指北技术指北

写了一个python 小教本,当我放在我的服务器上运行时候发现报错了,今天就来写一下这个报错的解决过程。

报错原因

代码语言:javascript
复制
# coding=utf-8
# !/usr/bin/python
import requests. #这是第三行代码
import re
from datetime import datetime
import json
....
#当我用python xx.py执行时候,报以下错误:
Traceback (most recent call last):
  File "/hu/news/xx.py", line 3, in 
    import requests
  File "/usr/local/lib/python3.9/site-packages/requests/__init__.py", line 43, in 
    import urllib3
  File "/usr/local/lib/python3.9/site-packages/urllib3/__init__.py", line 41, in 
    raise ImportError(
ImportError: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'OpenSSL 1.0.2k-fips  26 Jan 2017'. See: https://github.com/urllib3/urllib3/issues/2168

由以上日志可得报错原因是代码第三行,我引用了requests库,但是requests库里的urllib3依赖openssl1.1.1+版本,但我的服务器openssl版本是 1.0.2k,所以解决的方法就是更新我服务器上的openssl版本为1.1.1+

解决过程

先安装相关依赖,执行命令 yum install perl-core zlib-devel -y即可

  1. 执行 wget https://github.com/openssl/openssl/releases/download/openssl-3.1.1/openssl-3.1.1.tar.gz 获取最新版本的openssl
  2. 解压缩安装包tar -zxvf openssl-3.1.1.tar.gz ,然后进入openssl3.1的目录cd openssl-3.1.1/
  3. 指定安装路径 /config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl shared zlib
  4. 执行 make 进行编译,等make完毕后 执行 make install 进行安装
  5. echo "/usr/local/ssl/lib64" > /etc/ld.so.conf.d/openssl.conf 执行这个命令来配置链接库,本质上就是新增了一个openssl配置文件,将里面的引用改成最新的
  6. 执行 ldconfig -v 来更新最新的链接
  7. 执行 whereis openssl 就可以看到原来的openssl是装在usr/bin目录下的。输出是:openssl: /usr/bin/openssl
  8. 现在我们刚刚装的是装在了/usr/local/ssl/bin目录下。所以下一步我们要进行替换,用local目录下的替换掉bin目录下的
  9. 执行 cp /usr/local/ssl/bin/openssl /usr/bin/openssl 来覆盖原来的openssl
  10. 执行 ldconfig -v 再次刷新
  11. 输入 openssl version 若输出是 OpenSSL 3.1.1 30 May 2023 (Library: OpenSSL 3.1.1 30 May 2023) 则证明成功了! 虽然折腾到了这里,不过最简单的解决办法,应该是降低requests库的版本,安装一个低版本的requests
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024年01月09日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 报错原因
  • 解决过程
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档