解決Python3 安裝Scrapy和Twisted模塊時出現[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed

自己在網絡上搜集了一下,大多數方法都不管用,後來自己根據報錯的詳細信息去改了庫代碼,最後成功安裝。

一、網絡上通用方法:

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,均可安裝完成。謝謝觀看!!!

 

自己蒐集整理加上自己研究,轉載請標明出處!!!!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章