尝试安装 Google EarthExplorer。我在一个强大的公司防火墙内,并且必须检查 Chrome 使用的证书来验证正在验证的服务器/地址(使用 Chrome 的开发工具)。
经过一番阅读 - 情况看起来是这样的:
1)在对象上调用Initialize
方法时,用于管理连接。 ee
ee
requests
2) 要正确配置 VirtualEnv,我必须配置我的 virtualenv 以使用组织提供的证书。基于这个 SE(SE Python SSL Requests...),我了解到 python 堆栈正在使用的事实,以及在 pythonrequests
上certifi
管理 SSL 的证书包。
3) 配置提供的证书(与 Chrome 使用的证书匹配)后,我可以使用请求在我的 VirtualEnv 中打开与谷歌的连接。伟大的!
(earthengine) X:\_01_VirtualEnvs\earthengine>python
Python 2.7.10 (default, May 23 2015, 09:40:32) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import requests
>>> requests.get("https://earthengine.google.com/", verify = True)
<Response [200]>
>>>
我认为这现在正在“工作”......当我在 VirtualEnv 之外尝试相同的操作时,我收到了失败的SSL3_GET_SERVER_CERTIFICATE...
消息。这让我知道我在正确的地方获得了证书,并且它似乎工作正常。
但是,我仍然在以下方面遇到错误ee.Initialize()
:
>>> ee.Initialize()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "X:\_01_VirtualEnvs\earthengine\lib\site-packages\ee\__init__.py", line 9
3, in Initialize
ApiFunction.initialize()
File "X:\_01_VirtualEnvs\earthengine\lib\site-packages\ee\apifunction.py", lin
e 151, in initialize
signatures = data.getAlgorithms()
File "X:\_01_VirtualEnvs\earthengine\lib\site-packages\ee\data.py", line 410,
in getAlgorithms
return send_('/algorithms', {}, 'GET')
File "X:\_01_VirtualEnvs\earthengine\lib\site-packages\ee\data.py", line 738,
in send_
response, content = send_with_backoff()
File "X:\_01_VirtualEnvs\earthengine\lib\site-packages\ee\data.py", line 735,
in send_with_backoff
'Unexpected HTTP error: %s' % e.message)
ee.ee_exception.EEException: Unexpected HTTP error: [Errno 1] _ssl.c:510: error:
14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
有人对这里出了什么问题有任何想法吗?我认为 ee 正在使用requests
,因此正确设置了 python 环境requests
。
从查看异常回溯,似乎ee
有基于回溯签名相似性的子类requests
......我读对了吗?两种情况下的回溯都指向相同的_ssl.c:510
失败 - 在同一行的相同文件名上失败?
有没有办法从异常中获取更多信息?在这一点上,我真的很茫然。