it-swarm.com.ru

InsecurePlatformWarning: настоящий объект SSLContext недоступен. Это мешает urllib3 правильно настроить SSL

Попытка выполнить REST GET через python запросы со следующим кодом, и я получил ошибку.

Фрагмент кода:

import requests
header = {'Authorization': 'Bearer...'}
url = az_base_url + az_subscription_id + '/resourcegroups/Default-Networking/resources?' + az_api_version
r = requests.get(url, headers=header)

Ошибка:

/usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/util/ssl_.py:79: 
          InsecurePlatformWarning: A true SSLContext object is not available. 
          This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. 
          For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning

Моя версия python - 2.7.3. Я попытался установить urllib3 и запрашивает [безопасность], как предлагает какой-то другой поток, я все еще получаю ту же ошибку.

Интересно, кто-нибудь может дать несколько советов?

329
user4525298

Документы дают достаточный показатель того, что требуется. , однако requests позволяет нам пропустить несколько шагов:

Вам нужно только установить securityдополнительные пакеты (спасибо @admdrew за указание на это)

$ pip install requests[security]

или установите их напрямую:

$ pip install pyopenssl ndg-httpsclient pyasn1

запросы будут автоматически вставлять pyopenssl в urllib3


Если вы используете Ubuntu, вы можете столкнуться с проблемами при установке pyopenssl, вам понадобятся следующие зависимости:

$ apt-get install libffi-dev libssl-dev
546
nathan-m

Если вы не можете обновить свою версию Python до 2.7.9 и хотите отключить предупреждения,

вы можете понизить версию ваших "запросов" до версии 2.5.3:

pip install requests==2.5.3

раскрытие ошибки / предупреждение введено в 2.6.

69
raittes