围绕SO问了几次类似的问题,但解决方案是urlopen
。该函数采用可选的context
参数,该参数可以接受预先配置的SSL上下文。 urlretrieve
没有此参数。如何在以下调用中绕过SSL验证错误?
urllib.request.urlretrieve(
"http://sourceforge.net/projects/libjpeg-turbo/files/1.3.1/libjpeg-turbo-1.3.1.tar.gz/download",
destFolder+"/libjpeg-turbo.tar.gz")
答案 0 :(得分:3)
此解决方案对我来说效果很好:在调用库之前,请定义默认的SSL上下文:
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
# urllib.request.urlretrieve(...)
来源:http://thomas-cokelaer.info/blog/2016/01/python-certificate-verified-failed/
答案 1 :(得分:1)
mohi@dev:~$ vi runtime.txt
mohi@dev:~$ cat runtime.txt
python-2.7.13
似乎无法做到这一点(在Python> = 2.7.9或Python> = 3.0中)。
建议将requests
包作为替代品。
编辑添加:已将上下文参数添加到代码中,即使文档中未提及!帽子@Sushisource