目录

一、问题描述

二、排查过程

三、总结

四、写在最后

一、问题描述

在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

python3 openssl问题(贼有用)的更多相关文章

  1. 基于OpenSSL的HTTPS通信C++实现

      HTTPS是以安全为目标的HTTP通道,简单讲是HTTP的安全版.即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL.Nebula是一个为开发者提供一个快速开发 ...

  2. 实用的PHP正则表达式

    正则表达式是程序开发中一个重要的元素,它提供用来描述或匹配文本的字符串,如特定的字符.词或算式等.但在某些情况下,用正则表达式去验证一个字符串比较复杂和费时.本文为你介绍10种常见的实用PHP正则表达 ...

  3. Kali linux learning note

    from:http://blog.sina.com.cn/s/blog_40983e5e0101dhz0.html     因为kali linux基于debian 7,当然要把这台Acer 4736 ...

  4. 解决Resharper在Core项目中无法执行单元测试的问题

    项目升级core了,resharper最近升级到2018.1版本,但是安装后还是无法直接运行单元测试,昨天小姐姐发了解决方法,贼有用.所以记录一下,给自己以后或者其他遇到此问题的小伙伴用.  解决Re ...

  5. ubuntu下python3安装scrapy,OpenSSL

    环境:ubuntu 16.04  ,  python3.5.1+ 安装顺序如下: sudo apt-get install build-essential sudo apt-get install p ...

  6. 【Python】CentOs7 Python3安装Openssl以及解决ssl问题

    一.安装OpenssL 1.下载的压缩包放在根目录 wget http://www.openssl.org/source/openssl-1.0.2j.tar.gz 2.在文件夹下解压缩,得到open ...

  7. CentOs7 Python3安装Openssl以及解决ssl问题

    一.安装OpenssL 1.下载的压缩包放在根目录 wget http://www.openssl.org/source/openssl-1.0.2j.tar.gz 2.在文件夹下解压缩,得到open ...

  8. centos7下安装python3 解决openssl等一系列问题

    最近折腾了下centos7,发现按正常方法安装python3.7后面会出现各种操蛋的问题. 主要的问题有三个,openssl版本过低,'_ctypes'缺失,以及安装后sqlite3缺失.下面我会贴出 ...

  9. centos6/7 下升级openssl并安装python3

    今天是2019年的最后一天了,看了看自己今年写的随笔就一篇,实在有点少得可怜,就想着趁现在有点时间就再写一篇,^_^ centos6 或者centos 7 python 默认都是安装python 2 ...

随机推荐

  1. scrapy(四): 爬取二级页面的内容

    scrapy爬取二级页面的内容 1.定义数据结构item.py文件 # -*- coding: utf-8 -*- ''' field: item.py ''' # Define here the m ...

  2. Python并发编程04 /多线程、生产消费者模型、线程进程对比、线程的方法、线程join、守护线程、线程互斥锁

    Python并发编程04 /多线程.生产消费者模型.线程进程对比.线程的方法.线程join.守护线程.线程互斥锁 目录 Python并发编程04 /多线程.生产消费者模型.线程进程对比.线程的方法.线 ...

  3. Shaderlab-10chapter-立方体纹理、玻璃效果

    10.1.1天空盒子 window - Lighting - skyMaterial 创建mat,shader选自带的6 side shader 确保相机选skybox 如果某个相机需要覆盖,添加sk ...

  4. redis入门指南(四)—— redis如何节省空间

    写在前面 学习<redis入门指南>笔记,结合实践,只记录重要,明确,属于新知的相关内容. 节省空间 1.redis对于它所支持的五种数据类型,每种都提供了两种及以上的编码方式去存储(具体 ...

  5. OSCP Learning Notes - Information Gathering

    Common Tools Google Exploit-DB/Google Hacking DB WHOIS Netcraft theharvester Example: Google search: ...

  6. Burp Suite Spider Module - 网络爬虫模块

    Web application spdiering 和scanning 可以结合使用. Burp Suite 的Spider Module - Options 主要包含:Crawler Setting ...

  7. 30个Linux Shell脚本经典案例(上)

    编写Shell过程中注意事项: 开头加解释器:#!/bin/bash 语法缩进,使用四个空格:多加注释说明. 命名建议规则:变量名大写.局部变量小写,函数名小写,名字体现出实际作用. 默认变量是全局的 ...

  8. 如何看待HTTP/3

    前言 HTTP/2 相比于 HTTP/1.1,可以说是大幅度提高了网页的性能,只需要升级到该协议就可以减少很多之前需要做的性能优化工作,当然兼容问题以及如何优雅降级应该是国内还不普遍使用的原因之一. ...

  9. H5移动端,ios从后台返回到app,页面会白一下

    visibilitychange事件可以检查从后台返回事件,然后通过添加div,强制浏览器刷新页面 var divEle = document.createElement("DIV" ...

  10. python-scrapy爬虫框架爬取拉勾网招聘信息

    本文实例为爬取拉勾网上的python相关的职位信息, 这些信息在职位详情页上, 如职位名, 薪资, 公司名等等. 分析思路 分析查询结果页 在拉勾网搜索框中搜索'python'关键字, 在浏览器地址栏 ...