自己在网络上搜集了一下,大多数方法都不管用,后来自己根据报错的详细信息去改了库代码,最后成功安装。
一、网络上通用方法:
1.全局取消证书验证(当项目对安全性问题不太重视时,推荐使用,可以全局取消证书的验证,简易方便)
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
2.使用ssl创建未验证的上下文,在url中传入上下文参数(当项目整体非常重视安全问题时,推荐这种方式,可以局部取消证书验证)
import ssl
context = ssl._create_unverified_context()
将context传入url函数的context参数中,比如
urllib2.urlopen('dest_url',context=context).read()
这样就解决了ssl:certificate_verify_failed这个问题,成功运行脚本
二、自己研究的方法:
打开文件: /usr/local/lib/python3.6/site-packages/setuptools/package_index.py
具体位置和Python3的安装位置有关系,可以用命令搜索: find / -name "package_index.py"
找到类 class PackageIndex(),在该类的初始化函数中__init__()中修改代码
#-----------------------------------------------------------
# 修改之前
#-----------------------------------------------------------
if use_ssl:
self.opener = ssl_support.opener_for(ca_bundle)
else:
self.opener = urllib.request.urlopen
#-----------------------------------------------------------
###### 将上面代码删掉,重新添加下面一行代码 ######
#-----------------------------------------------------------
# 修改之后
#-----------------------------------------------------------
self.opener = urllib.request.urlopen
#-----------------------------------------------------------
********具体修改见代码注释********
上述方式改完后,重新通过pip安装Twisted和Scrapy,均可安装完成。谢谢观看!!!
自己搜集整理加上自己研究,转载请标明出处!!!!!!