Попытка получить работающую установку Google EarthExplorer. Я нахожусь внутри надежного корпоративного брандмауэра, и мне пришлось проверить сертификат, используемый Chrome, для проверки проверяемого сервера/адреса (с помощью инструментов разработчика Chrome).
После некоторого чтения - похоже, ситуация такова:
1) при вызове метода Initialize
для объекта ee
ee
использует requests
для управления соединением.
2) Чтобы правильно настроить VirtualEnv, мне пришлось настроить мой virtualenv для использования сертификата, предоставленного организацией. На основе этого SE (SE Python SSL Requests...) я был осведомлен о том, что стек python использует requests
, который вместе с certifi
управляет пакетом сертификатов для SSL на python.
3) После настройки предоставленного сертификата (соответствующего используемому в Chrome) я могу открыть соединение с Google внутри моего 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
— сбой с одним и тем же именем файла в одной строке?
Есть ли способ получить больше информации об исключении? Я действительно в растерянности в этот момент.