这个问题,已经困扰我好几天了,本萌新刚开始接触python,想爬取几个网页试试,发现urllib没法识别https,百度后才知道要导入ssl模块,但是发现又报错了。python
本人实在没法理解为何会报错,由于ssl模块确实在lib/python3.6这个目录下,求助度娘后,才知道python中要使用ssl须要有openssl做为前置,因而安装openssl,可是发现openssl已经安装了,进入到系统自带那个python2.7中,发现导入ssl没有报错。linux
到这个时候已经能大体肯定缘由了,就是python3在安装的过程当中没法使用openssl,根据网上的一些博客的作法,要进入到python源码包解压后的那个目录下的Modules/Setup,注意Setup这个文件,只有在python完成安装后才会生成这个文件。vim
用vim编辑,找到上图部分,把上图横线部分部分的#给去掉。python2.7
而后再编译 make。url
安装 make install。spa
可是这个时候又特么悲剧的报错了,说是找不到openssl/rsa这个文件,百度以后,说是缺乏openssl的开发包,由于你尝试编译的程序使用openssl,可是缺乏和openssl连接的库与头文件,须要安装openssl的开发包。blog
由于我使用的是linuxmint,是基于ubantu的发行版,须要安装openssl-dev。ssl
安装:apt-get install openssl-dev开发
再来编译 makeget
安装 make install
这两步是对已近安装的python再进行覆盖安装。
到此为止问题就解决了。
总结一下:
当你发现没法导入ssl的时候,首先检查一下,是否安装了openssl,再来检查一下是否安装openssl的开发包。