目录

一、问题描述

二、排查过程

三、总结

四、写在最后

一、问题描述

在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

最新文章

  1. VS2010以及vs10sp1安装问题
  2. gcc
  3. Linux服务器搬迁记(一)
  4. 基础知识系列☞各版本下IIS请求处理过程区别
  5. .net 常用正则表达式
  6. jquery插件开发模板
  7. 树-红黑树(R-B Tree)
  8. CCPC网赛,HDU_5832 A water problem
  9. 外设位宽为8、16、32时,CPU与外设之间地址线的连接方法
  10. swiper轮播问题之一:轮播图内容为动态数据生成时轮播图无法自动轮播
  11. Linux的资源管理器
  12. Docker系列09—Docker的系统资源限制及验证
  13. C# 执行DOS命令和批处理
  14. Spring 学习——Spring AOP——AOP配置篇Advice(有参数传递)
  15. QVariant类
  16. Linux:CPU使用率100%排查方法
  17. 《剑指offer(第二版)》——面试题36:二叉搜索树与双向链表
  18. Class文件分析
  19. BZOJ2115:[WC2011]Xor——题解
  20. linux ps aux 结果解释

热门文章

  1. DLL注入之修改PE静态注入
  2. 十年老苹果(A1286)强升Catalina及Win10踩坑记
  3. 《Object Storage on CRAQ: High-throughput chain replication for read-mostly workloads》论文总结
  4. HTB::OpenAdmin
  5. web notification api
  6. Prometheus + Grafana 监控系统搭
  7. 数据可视化之 图表篇(三)体验Power BI最新发布的AI图表:分解树
  8. Worktile完成新一轮融资,将发力研发管理赛道
  9. 测试人员应该掌握的oracle知识体系
  10. union注入