Ich benutze Python 2.7.3 und Requests. Ich habe Requests via pip installiert. Ich glaube, es ist die neueste Version. Ich laufe auf Debian Wheezy.
Ich habe in der Vergangenheit viele Male Anfragen verwendet und war nie mit diesem Problem konfrontiert, aber es scheint, dass Requests
ich beim Erstellen von https-Anfragen mit eine InsecurePlatform
Ausnahme bekomme .
Der Fehler erwähnt urllib3
, aber ich habe das nicht installiert. Ich habe es installiert, um zu überprüfen, ob der Fehler behoben wurde, aber nicht.
/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.
Irgendwelche Ideen, warum ich das bekomme? Ich habe die Dokumente überprüft, wie in der Fehlermeldung angegeben, aber die Dokumente sagen, dass urllib3 importiert und entweder die Warnung deaktiviert oder ein Zertifikat bereitgestellt werden soll.
quelle
sudo apt-get install python-dev libffi-dev libssl-dev
pip install 'requests[security]'
Requests 2.6 führte diese Warnung für Benutzer von Python vor 2.7.9 ein, wobei nur Standard-SSL-Module verfügbar waren.
Angenommen, Sie können nicht auf eine neuere Version von Python aktualisieren, werden dadurch aktuellere Python-SSL-Bibliotheken installiert:
Dies kann jedoch auf einigen Systemen ohne die Build-Abhängigkeiten für pyOpenSSL fehlschlagen. Auf Debian-Systemen sollte es ausreichen, dies vor dem obigen Befehl pip auszuführen, damit pyOpenSSL Folgendes erstellt:
quelle
Ich benutze dies nicht in der Produktion, nur einige Testläufer. Und um die urllib3-Dokumentation zu wiederholen
Bearbeiten / Aktualisieren:
Folgendes sollte auch funktionieren:
quelle
Wenn Sie nicht in der Lage zu aktualisieren Sie Ihre Python - Version 2.7.9, und wollen Unterdrückungs - Warnungen,
Sie können Ihre 'Anfragen'- Version auf 2.5.3 herabstufen :
Informationen zur Version: http://fossies.org/diffs/requests/2.5.3_vs_2.6.0/requests/packages/urllib3/util/ssl_.py-diff.html
quelle
In der Tat können Sie dies versuchen.
requests.post("https://www.google.com", verify=False)
Sie können den Code für Anfragen lesen.
"C:\Python27\Lib\site-packages\requests\sessions.py"
quelle
Alle hier angegebenen Lösungen haben nicht geholfen (ich bin auf Python 2.6.6 beschränkt). Ich habe die Antwort in einem einfachen Schalter gefunden, der an pip übergeben werden kann:
Dies teilt pip mit, dass es in Ordnung ist, das Modul von pypi.python.org abzurufen.
Für mich ist das Problem der Proxy meines Unternehmens hinter der Firewall, der es für einige Server wie einen böswilligen Client aussehen lässt. Hurra Sicherheit.
Update: In der Antwort von @Alex finden Sie Änderungen in den PyPi-Domänen sowie zusätzliche
--trusted-host
Optionen, die hinzugefügt werden können. (Ich würde hier kopieren / einfügen, aber seine Antwort, also +1 ihn)quelle
Diese Antwort hat nichts damit zu tun, aber wenn Sie die Warnung loswerden und die folgende Warnung von Anfragen erhalten möchten:
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.
Sie können es deaktivieren , indem Sie Ihrem Python-Code die folgende Zeile hinzufügen:
requests.packages.urllib3.disable_warnings()
quelle
Ich musste zuerst zu
bash
(von ZSH) gehen. DannDas Problem wurde behoben.
quelle
Dies kam für mich auf Ubuntu 14.04 (mit Python 2.7.6) letzte Woche, nachdem ich ein gemacht habe
apt-get dist-upgrade
, daslibssl1.1:amd64
von enthalten wardeb.sury.org
.Da ich
certbot-auto renew
von einem Cron-Job ausgehe, nutze ich das auch--no-self-upgrade
, um außerplanmäßige Wartungsarbeiten zu reduzieren. Dies scheint die Ursache des Problems gewesen zu sein.Um den Fehler zu beheben, musste ich nur root werden (mit
su
dem--login
Schalter) und dascertbot-auto
Upgrade selbst durchführen lassen. Dh:anstelle dessen, was normalerweise von Roots Crontab läuft:
Danach liefen letsencrypt-Renwals wieder normal.
quelle
Für mich keine Arbeit brauche ich Upgrade Pip ....
Debian / Ubuntu
Abhängigkeiten installieren
Pip aktualisieren und Pakete installieren
Wenn Sie Abhängigkeiten entfernen möchten
quelle
Ich hatte gerade ein ähnliches Problem auf einem CentOS 5-Server, auf dem ich Python 2.7.12 in / usr / local auf einer viel älteren Version von Python2.7 installiert habe. Ein Upgrade auf CentOS 6 oder 7 ist auf diesem Server derzeit keine Option.
Einige der Python 2.7-Module waren noch aus der älteren Version von Python vorhanden, aber pip konnte nicht aktualisiert werden, da das neuere Kryptografiepaket von den CentOS 5-Paketen nicht unterstützt wird.
Insbesondere schlug 'pip install request [security]' fehl, da die openssl-Version unter CentOS 5 0.9.8e war, was von Cryptography> 1.4.0 nicht mehr unterstützt wird.
Um das ursprüngliche Problem des OP zu lösen, habe ich Folgendes getan:
Diese installierte Kryptographie 1.3.4, die mit openssl-0.9.8e funktioniert. Die Kryptografie 1.3.4 reicht auch aus, um die Anforderung für den folgenden Befehl zu erfüllen.
Dieser Befehl wird jetzt installiert, da nicht versucht wird, Kryptografie> 1.4.0 zu installieren.
Beachten Sie, dass ich auf Centos 5 auch Folgendes tun musste:
Damit Kryptografie erstellt werden kann
quelle
Im Folgenden wird beschrieben, wie es bei Python 3.6 für mich funktioniert:
quelle
Installieren Sie pyOpenSSL nicht, da es bald veraltet sein wird. Der derzeit beste Ansatz ist:
quelle
Wenn Sie nur unsichere Warnungen stoppen möchten, wie:
machen:
ist der Schlüssel, folgendes ist nicht gut darin:
oder
Sie MÜSSEN jedoch wissen, dass dies potenzielle Sicherheitsrisiken verursachen kann .
quelle
Ich hatte das gleiche Problem mit der
Mac
Pycharm Community Edition 2019.3
Python Interpreter 3.6.
Das Upgrade von pip mit 20.0.2 hat bei mir funktioniert.
Pycharm --> Preferences --> Project Interpreter --> click on pip --> specify version 20.0.2 --> Install package
quelle