Im utilisant Python 2.7.3 et les requêtes. J'ai installé Requests via pip. Je pense que c'est la dernière version. Je cours sur Debian Wheezy.
J'ai utilisé Requests de nombreuses fois dans le passé et je n'ai jamais rencontré ce problème, mais il semble que lorsque Requests
je fais des requêtes https avec, j'obtiens une InsecurePlatform
exception.
L'erreur mentionne urllib3
, mais je ne l'ai pas installé. Je l'ai installé pour vérifier s'il a résolu l'erreur, mais ce n'est pas le cas.
/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.
Des idées sur pourquoi je reçois ça? J'ai vérifié les documents, comme spécifié dans le message d'erreur, mais les documents disent d'importer urllib3 et de désactiver l'avertissement ou de fournir un certificat.
la source
sudo apt-get install python-dev libffi-dev libssl-dev
pip install 'requests[security]'
Requests 2.6 a introduit cet avertissement pour les utilisateurs de python avant 2.7.9 avec seulement des modules SSL stock disponibles.
En supposant que vous ne pouvez pas mettre à niveau vers une version plus récente de python, cela installera des bibliothèques SSL python plus à jour:
CEPENDANT, cela peut échouer sur certains systèmes sans les dépendances de construction pour pyOpenSSL. Sur les systèmes Debian, exécuter ceci avant la commande pip ci-dessus devrait être suffisant pour que pyOpenSSL puisse construire:
la source
Je ne l'utilise pas en production, juste quelques testeurs. Et pour réitérer la documentation urllib3
Modifier / mettre à jour:
Les éléments suivants devraient également fonctionner:
la source
Si vous n'êtes pas en mesure de mettre à niveau votre version Python vers 2.7.9 et que vous souhaitez supprimer les avertissements,
vous pouvez rétrograder votre version «demandes» vers 2.5.3:
À propos de la version: http://fossies.org/diffs/requests/2.5.3_vs_2.6.0/requests/packages/urllib3/util/ssl_.py-diff.html
la source
En fait, vous pouvez essayer cela.
requests.post("https://www.google.com", verify=False)
vous pouvez lire le code des demandes.
"C:\Python27\Lib\site-packages\requests\sessions.py"
la source
Toutes les solutions présentées ici n'ont pas aidé (je suis limité à python 2.6.6). J'ai trouvé la réponse dans un simple commutateur à passer à pip:
Cela indique à pip qu'il est OK de récupérer le module sur pypi.python.org.
Pour moi, le problème est le proxy de mon entreprise derrière son pare-feu qui le fait ressembler à un client malveillant pour certains serveurs. Hourra la sécurité.
Mise à jour: Voir la réponse de @Alex pour les changements dans les domaines PyPi et les
--trusted-host
options supplémentaires qui peuvent être ajoutées. (Je copier / coller ici, mais sa réponse, alors +1 lui)la source
Cette réponse n'est pas liée, mais si vous souhaitez vous débarrasser de l'avertissement et obtenir l'avertissement suivant des demandes:
InsecurePlatformWarning /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.
Vous pouvez le désactiver en ajoutant la ligne suivante à votre code python:
requests.packages.urllib3.disable_warnings()
la source
Je devais d'abord aller
bash
(depuis ZSH). ensuiterésolu le problème.
la source
Cela est venu pour moi sur Ubuntu 14.04 (avec Python 2.7.6) la semaine dernière après avoir fait un
apt-get dist-upgrade
qui comprenaitlibssl1.1:amd64
dedeb.sury.org
.Depuis que je cours
certbot-auto renew
depuis un travail cron, j'utilise également le--no-self-upgrade
pour réduire la maintenance imprévue. Cela semble avoir été la source du problème.Pour corriger l'erreur, tout ce que j'avais à faire était de devenir root (avec
su
le--login
commutateur de) et de secertbot-auto
mettre à niveau lui-même. C'est à dire:au lieu de ce qui s'exécute normalement à partir de la crontab de root:
Après cela, letencrypt renwals s'est à nouveau exécuté normalement.
la source
Pour moi, pas de travail, j'ai besoin de mise à niveau pip ....
Debian / Ubuntu
installer les dépendances
mettre à jour pip et installer des packages
Si vous souhaitez supprimer les dépendances
la source
Je viens d'avoir un problème similaire sur un serveur CentOS 5 où j'ai installé python 2.7.12 dans / usr / local au-dessus d'une version beaucoup plus ancienne de python2.7. La mise à niveau vers CentOS 6 ou 7 n'est pas une option sur ce serveur pour le moment.
Certains modules python 2.7 existaient toujours à partir de l'ancienne version de python, mais pip n'a pas pu être mis à niveau car le nouveau package de cryptographie n'est pas pris en charge par les packages CentOS 5.
Plus précisément, «pip install request [security]» a échoué car la version openssl sur le CentOS 5 était 0.9.8e qui n'est plus prise en charge par la cryptographie> 1.4.0.
Pour résoudre le problème d'origine des PO, j'ai fait:
Cette cryptographie installée 1.3.4 qui fonctionne avec openssl-0.9.8e. cryptograpy 1.3.4 est également suffisant pour satisfaire l'exigence de la commande suivante.
Cette commande s'installe maintenant car elle n'essaie pas d'installer la cryptographie> 1.4.0.
Notez que sur Centos 5, je devais également:
Pour permettre à la cryptographie de se construire
la source
Voici comment cela fonctionne pour moi sur Python 3.6:
la source
N'installez pas pyOpenSSL car il sera bientôt obsolète. La meilleure approche actuelle est-
la source
si vous voulez simplement arrêter un avertissement non sécurisé comme:
faire:
est la clé, les suivis ne sont pas bons:
ou
mais, vous DEVEZ savoir, cela pourrait entraîner des risques de sécurité potentiels .
la source
J'ai eu le même problème avec l' interpréteur Python de l' édition communautaire
Mac
Pycharm 2019.3
3.6.
La mise à niveau de pip avec 20.0.2 a fonctionné pour moi.
Pycharm --> Preferences --> Project Interpreter --> click on pip --> specify version 20.0.2 --> Install package
la source