Python 2.7 为什么我从google adwords api收到证书\u验证\u失败?

Python 2.7 为什么我从google adwords api收到证书\u验证\u失败?,python-2.7,google-api,google-ads-api,google-api-client,google-api-python-client,Python 2.7,Google Api,Google Ads Api,Google Api Client,Google Api Python Client,google adwords api停止调用此链接的原因: https://adwords.google.com/api/adwords/mcm/v201502/CustomerService?wsdl 如果出现此错误,我应该在之前加载一些证书吗?如何加载 urllib2.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)> urllib2

google adwords api停止调用此链接的原因:

https://adwords.google.com/api/adwords/mcm/v201502/CustomerService?wsdl
如果出现此错误,我应该在之前加载一些证书吗?如何加载

urllib2.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)>
urllib2.URLError:
使用Python 2.7.10

完整源代码:

完整错误代码:

Traceback (most recent call last):
  File "C:/Users/Crezary Wagner/PycharmProjects/learn-adwords/src/examples/create_adwords_client_without_yaml.py", line 56, in <module>
    CLIENT_CUSTOMER_ID)
  File "C:/Users/Crezary Wagner/PycharmProjects/learn-adwords/src/examples/create_adwords_client_without_yaml.py", line 50, in main
    customer = adwords_client.GetService('CustomerService').get()
  File "C:\root\Python27\lib\site-packages\googleads\adwords.py", line 256, in GetService
    proxy=proxy_option, cache=self.cache, timeout=3600)
  File "C:\root\Python27\lib\site-packages\suds\client.py", line 115, in __init__
    self.wsdl = reader.open(url)
  File "C:\root\Python27\lib\site-packages\suds\reader.py", line 150, in open
    d = self.fn(url, self.options)
  File "C:\root\Python27\lib\site-packages\suds\wsdl.py", line 136, in __init__
    d = reader.open(url)
  File "C:\root\Python27\lib\site-packages\suds\reader.py", line 74, in open
    d = self.download(url)
  File "C:\root\Python27\lib\site-packages\suds\reader.py", line 92, in download
    fp = self.options.transport.open(Request(url))
  File "C:\root\Python27\lib\site-packages\suds\transport\https.py", line 62, in open
    return HttpTransport.open(self, request)
  File "C:\root\Python27\lib\site-packages\suds\transport\http.py", line 67, in open
    return self.u2open(u2request)
  File "C:\root\Python27\lib\site-packages\suds\transport\http.py", line 132, in u2open
    return url.open(u2request, timeout=tm)
  File "C:\root\Python27\lib\urllib2.py", line 431, in open
    response = self._open(req, data)
  File "C:\root\Python27\lib\urllib2.py", line 449, in _open
    '_open', req)
  File "C:\root\Python27\lib\urllib2.py", line 409, in _call_chain
    result = func(*args)
  File "C:\root\Python27\lib\urllib2.py", line 1240, in https_open
    context=self._context)
  File "C:\root\Python27\lib\urllib2.py", line 1197, in do_open
    raise URLError(err)
urllib2.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)>
回溯(最近一次呼叫最后一次):
文件“C:/Users/Crezary Wagner/pycharm项目/learn adwords/src/examples/create_adwords_client_而不使用_yaml.py”,第56行,in
客户(客户ID)
文件“C:/Users/Crezary Wagner/pycharm项目/learn adwords/src/examples/create_adwords_client_而不使用_yaml.py”,第50行,主文档
customer=adwords\u client.GetService('CustomerService').get()
文件“C:\root\Python27\lib\site packages\googleads\adwords.py”,第256行,在GetService中
proxy=proxy\u选项,cache=self.cache,超时=3600)
文件“C:\root\Python27\lib\site packages\suds\client.py”,第115行,在\uuu init中__
self.wsdl=reader.open(url)
文件“C:\root\Python27\lib\site packages\suds\reader.py”,第150行,打开
d=self.fn(url,self.options)
文件“C:\root\Python27\lib\site packages\suds\wsdl.py”,第136行,在\uuu init中__
d=读卡器。打开(url)
打开文件“C:\root\Python27\lib\site packages\suds\reader.py”,第74行
d=自我下载(url)
下载文件“C:\root\Python27\lib\site packages\suds\reader.py”,第92行
fp=self.options.transport.open(请求(url))
打开文件“C:\root\Python27\lib\site packages\suds\transport\https.py”,第62行
返回HttpTransport.open(self,request)
打开文件“C:\root\Python27\lib\site packages\suds\transport\http.py”,第67行
返回self.u2open(u2request)
文件“C:\root\Python27\lib\site packages\suds\transport\http.py”,第132行,在u2open中
返回url.open(u2request,timeout=tm)
打开文件“C:\root\Python27\lib\urllib2.py”,第431行
响应=自身打开(请求,数据)
文件“C:\root\Python27\lib\urllib2.py”,第449行,处于打开状态
"开放",
文件“C:\root\Python27\lib\urllib2.py”,第409行,在调用链中
结果=func(*args)
文件“C:\root\Python27\lib\urllib2.py”,第1240行,https\u open
上下文=自身(上下文)
文件“C:\root\Python27\lib\urllib2.py”,第1197行,打开
引发URL错误(err)
urllib2.URLError:

不确定这是否是问题所在,但值得检查一下

Python
2.7.9默认情况下为
HTTP
连接启用了证书验证

您连接到的服务器没有您的客户端信任的证书。pysphere应该为这个用例适当地配置
SSL

尝试提出如下请求:

requests.get('https://adwords.google.com/api/adwords/mcm/v201502/CustomerService?wsdl', verify=False)

Python使用来自“系统ssl证书存储”的证书来验证https连接,如果存储中没有任何适当的ssl证书,则会发生如下错误。
下载ssl证书(在浏览器中打开您的https链接,然后单击地址栏中的锁定图标>更多信息>查看证书>详细信息>导出),并按说明将其安装到您的系统上此链接尝试此操作,它帮助了我:

import ssl

ssl._create_default_https_context = ssl._create_unverified_context

我遇到了这个问题。我使用相同的DNS阻止列表设置了我的手机,但在我启用该工具并恢复此特定项目的工作后,它并没有立即显现出来。我建议仔细检查您的设置,并确认没有启用任何AdBlocker(在我的例子中是DNS级别的ala NextDNS/hosted PiHole)。花了好几个小时尝试python版本、证书、重新安装东西。希望这对别人有帮助

我可以停止验证,因此无法使用您的解决方案。我知道它可以工作,但必须安装受信任的证书。请检查此项,然后使用OAUTH 2.0授权您的应用程序。此链接无助于解决证书问题。这是一个很好的信息来源,但与证书问题无关。谷歌官方示例不起作用。请确保操作系统已完全更新。您可能缺少所需的公共证书。