python3 openssl问题(贼有用)
2024-10-09 08:03:59
目录
一、问题描述
二、排查过程
三、总结
四、写在最后
一、问题描述
在python3 执行任何的request请求时,都会报以下的错误,纵观全网,以下基本尝试过了,对于我这个是无效的,后来不知道怎么无意中发现我安装Python3.7的时候编译里写的编译参数--with-ssl是错误的,而正确的是--with-openssl=/usr/local/openssl(openssl写自己的路径,有的是/usr/include/openssl)
requests.exceptions.SSLError: HTTPSConnectionPool(host='XXXXXXX', port=): Max retries exceeded with url: XXXXXXXX (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available."))
二、排查过程
1、查看openssl版本是不是比较低
[root@lemon Python-3.7.]# openssl version
OpenSSL 1.1.1g Apr
如果版本比较低,安装较新版本
wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz
tar -zxvf openssl-1.1.1g.tar.gz
cd openssl-1.1.1g/
./config --prefix=/usr/local/openssl
make
make install
备份和替换
mv /usr/bin/openssl /usr/bin/openssl.old
mv /usr/include/openssl /usr/include/openssl.old
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
ldconfig
2、查看Python3是否有编译openssl
[root@lemon Python-3.7.]# python3 -c "import sysconfig; print(sysconfig.get_config_var('CONFIG_ARGS'))"
'--prefix=/usr/local/python3' '--with-openssl=/usr/local/openssl' '--enable-shared'
没有的话,重新编译安装Python3
yum install -y libffi libffi-devel
cd Python-3.7.
./configure --prefix=/usr/local/python3 --with-openssl=/usr/local/openssl --enable-shared
make && make install
重新连接
ln -s /usr/local/python3/bin/python3. /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
echo "/usr/local/python3/lib" >/etc/ld.so.conf.d/python3.conf
ldconfig
三、总结
有问题还是要根据日志去排查,而不是根据网上的一通瞎搞,挺浪费时间的。每个人遇到的场景不一样,解决的办法肯定也不一样,但是背后的原因可能是一样的,这就需要内功了,后面再好好研究一下openssl这个鬼东西。
四、写在最后
在平凡中坚持前行,总有一天会遇见不一样的自己。
写博客记录、思考、总结,趟过的坑不趟第二遍。
所有的文章,皆同步在公众号“运维汪”,可关注;也可加入“不扯淡,专注于技术”的QQ群:753512236
最新文章
- VS2010以及vs10sp1安装问题
- gcc
- Linux服务器搬迁记(一)
- 基础知识系列☞各版本下IIS请求处理过程区别
- .net 常用正则表达式
- jquery插件开发模板
- 树-红黑树(R-B Tree)
- CCPC网赛,HDU_5832 A water problem
- 外设位宽为8、16、32时,CPU与外设之间地址线的连接方法
- swiper轮播问题之一:轮播图内容为动态数据生成时轮播图无法自动轮播
- Linux的资源管理器
- Docker系列09—Docker的系统资源限制及验证
- C# 执行DOS命令和批处理
- Spring 学习——Spring AOP——AOP配置篇Advice(有参数传递)
- QVariant类
- Linux:CPU使用率100%排查方法
- 《剑指offer(第二版)》——面试题36:二叉搜索树与双向链表
- Class文件分析
- BZOJ2115:[WC2011]Xor——题解
- linux ps aux 结果解释
热门文章
- DLL注入之修改PE静态注入
- 十年老苹果(A1286)强升Catalina及Win10踩坑记
- 《Object Storage on CRAQ: High-throughput chain replication for read-mostly workloads》论文总结
- HTB::OpenAdmin
- web notification api
- Prometheus + Grafana 监控系统搭
- 数据可视化之 图表篇(三)体验Power BI最新发布的AI图表:分解树
- Worktile完成新一轮融资,将发力研发管理赛道
- 测试人员应该掌握的oracle知识体系
- union注入