自己在網絡上搜集了一下,大多數方法都不管用,後來自己根據報錯的詳細信息去改了庫代碼,最後成功安裝。
一、網絡上通用方法:
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,均可安裝完成。謝謝觀看!!!
自己蒐集整理加上自己研究,轉載請標明出處!!!!!!