InsecurePlatformWarning: un verdadero objeto SSLContext no está disponible. Esto evita que urllib3 configure SSL adecuadamente

Intenté realizar REST GET a través de solicitudes de python con el siguiente código y obtuve un error.

Recorte de código:

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) 

Error:

 /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 

Mi versión de python es 2.7.3. Intenté instalar urllib3 y solicito [seguridad] como sugiere otro hilo, aún tengo el mismo error.

Me pregunto si alguien puede dar algunos consejos?

Los documentos dan un buen indicador de lo que se requiere. Sin embargo, las requests nos permiten omitir algunos pasos:

Solo necesita instalar los extras del paquete de security (gracias @admdrew por señalarlo)

 $ pip install requests[security] 

O, instálalos directamente:

 $ pip install pyopenssl ndg-httpsclient pyasn1 

Las solicitudes se inyectarán automáticamente pyopenssl en urllib3


Si está en Ubuntu, puede tener problemas para instalar pyopenssl , necesitará estas dependencias:

 $ apt-get install libffi-dev libssl-dev 

Si no puede actualizar su versión de Python a 2.7.9 y desea suprimir las advertencias,

puede bajar su versión de ‘solicitudes’ a 2.5.3:

 pip install requests==2.5.3 

La corrección de errores / advertencia introducida en 2.6.0