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 и запрашивает [безопасность], как предлагает какой-то другой поток, я все еще получаю ту же ошибку.
Интересно, кто-нибудь может дать несколько советов?
2 ответа
Документы дают хороший показатель того, что требуется., тем не мение requests
позвольте нам пропустить несколько шагов:
Вам нужно только установить security
дополнения к пакету (спасибо @admdrew за указание на это)
$ pip install requests[security]
или установите их напрямую:
$ pip install pyopenssl ndg-httpsclient pyasn1
Запросы будут автоматически вводить pyopenssl
в urllib3
Если вы используете Ubuntu, вы можете столкнуться с проблемами при установке pyopenssl
вам понадобятся следующие зависимости:
$ apt-get install libffi-dev libssl-dev
Если вы не можете обновить версию Python до 2.7.9 и хотите отключить предупреждения,
Вы можете понизить версию "запросов" до версии 2.5.3:
pip install requests==2.5.3