Python 如何禁用URL检索的SSL验证?

Python 如何禁用URL检索的SSL验证?,python,urllib2,Python,Urllib2,类似的问题已经被问了好几次了,但是解决方案是针对urlopen。该函数采用可选的context参数,该参数可以接受预先配置的SSL上下文URL检索没有此参数。如何在以下调用中绕过SSL验证错误 urllib.request.urlretrieve( "http://sourceforge.net/projects/libjpeg-turbo/files/1.3.1/libjpeg-turbo-1.3.1.tar.gz/download", destFolder+"/libjpe

类似的问题已经被问了好几次了,但是解决方案是针对
urlopen
。该函数采用可选的
context
参数,该参数可以接受预先配置的SSL上下文<代码>URL检索没有此参数。如何在以下调用中绕过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")

对于
urlretrieve
(在Python>=2.7.9或Python>=3.0中),这似乎是不可能的

建议更换该包装


编辑以添加:上下文参数已添加到代码中,即使文档中没有提到它!Hat tip@Sushisource

这个解决方案对我来说也很有效:在调用库之前,定义默认的SSL上下文:

import ssl
ssl._create_default_https_context = ssl._create_unverified_context
# urllib.request.urlretrieve(...)

资料来源:

至少从2.7开始,这是可能的。14@Sushisource当前位置我看不到任何真实的证据,但我希望被证明是错的。请发布一个新的答案,并链接到一些文档或备份它的代码。它不在文档中,但urlretrieve函数很高兴地接受了2.7.14Wow中的上下文参数,你是对的。是的,但是文档似乎没有更新。上面的解决方案对于mac上的Python3.7.4(与pyenv一起安装)运行良好