web-dev-qa-db-fra.com

InsecurePlatformWarning: un objet SSLContext réel n'est pas disponible. Cela empêche urllib3 de configurer SSL de manière appropriée

J'ai essayé d'exécuter REST GET via python demandes avec le code suivant et j'ai eu une erreur.

Code snip:

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)

Erreur:

/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

Ma version python est 2.7.3. J'ai essayé d'installer urllib3 et demande [sécurité] comme le suggère un autre thread, j'ai toujours la même erreur.

Je me demande si quelqu'un peut donner des conseils?

329
user4525298

La documentation donne un bon indicateur de ce qui est requis. , cependant requests nous permet de sauter quelques étapes:

Il vous suffit d'installer securityextras du paquet (merci à @admdrew de l'avoir signalé)

$ pip install requests[security]

ou, installez-les directement:

$ pip install pyopenssl ndg-httpsclient pyasn1

Les requêtes injecteront alors automatiquement pyopenssl dans urllib3


Si vous êtes sur Ubuntu, vous pourriez avoir des problèmes pour installer pyopenssl, vous aurez besoin de ces dépendances:

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

Si vous êtes incapable de mettre à jour votre version de Python vers la version 2.7.9 et que vous souhaitez supprimer les avertissements,

vous pouvez rétrograder votre version de 'request' à la version 2.5.3:

pip install requests==2.5.3

divulgation de correction / Avertissement introduit dans 2.6.

68
raittes