Was tun, wenn beim Ausführen von Python eine Warnung zur unsicheren Plattform angezeigt wird?

Update 2016/01/12

Einführung

Denken Sie nach der Installation eines neuen Python oder der Aktualisierung eines Pakets jemals, dass die folgende Warnung angezeigt wird, wenn Sie Python ausführen? (Ich war überrascht, eine solche Warnung zu erhalten, als ich das Python-Paket von SoftLayer aktualisierte und zum ersten Mal seit einiger Zeit versuchte, einen Befehl auszuführen.) In diesem Artikel werde ich Ihnen zeigen, wie Sie diese Warnung zur Warnung vor unsicherer Plattform entfernen können.

# python test1.py
/usr/lib/python2.6/site-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
(Unten weggelassen)

# sl vs list
/usr/lib/python2.6/site-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
(Unten weggelassen)

Lösung 1. Setzen Sie das Anforderungspaket auf 2.5.3 oder früher zurück.

Wie Sie unter dem folgenden Link sehen können, ist es so implementiert, dass diese Warnmeldung in Anfragen 2.6.0 oder höher angezeigt wird. Eine einfache Lösung besteht darin, pip zu verwenden, um die Anforderungen durch Angabe der Version wieder auf 2.5.3 zu ändern. http://fossies.org/diffs/requests/2.5.3_vs_2.6.0/requests/packages/urllib3/util/ssl_.py-diff.html

# pip list | grep requests
requests (2.6.2)
# pip install requests==2.5.3
# pip list | grep requests
requests (2.5.3)

Übrigens, wenn Sie versuchen, ein neues Paket einzuführen oder ein Upgrade durchzuführen, werden die zurückgestellten Anforderungen möglicherweise gleichzeitig aktualisiert (ich hoffe, Sie können später ein Downgrade durchführen), wenn Sie es in den Anforderungen 2.5.3 verschieben. Wenn Sie eine Neuinstallation oder ein Paketupdate auf einmal durchführen möchten, können Sie wie folgt vorgehen.

Beispiel für die Einführung eines neuen SoftLayer-Pakets


# pip install SoftLayer requests==2.5.3

Beispiel für die Aktualisierung eines SoftLayer-Pakets


# pip install --upgrade SoftLayer requests==2.5.3

Lösung 2. Führen Sie Anforderungen [Sicherheit] ein.

http://stackoverflow.com/questions/29099404/ssl-insecureplatform-error-when-using-requests-package

requests[security]Einführung von


# yum install -y openssl-devel python-devel libffi-devel
# pip install 'requests[security]'

Lösung 3. Ändern Sie die Python-Version auf 2.7.9 oder höher.

Wenn Sie die Python-Version auf 2.7.9 oder höher ändern, wird diese Warnung ausgeblendet. Abhängig vom Betriebssystem wird Python jedoch auf Systemebene verwendet. Beispielsweise sind CentOS und yum von RHEL in Python implementiert. Daher denke ich persönlich, dass das Ändern der Python-Version auf Systemebene nicht sehr wünschenswert ist.

Um mit dem neuen Softwarepaket koexistieren zu können, bieten CentOS- und RHEL-Systeme eine Komponente namens Software Collections an. Sie können dies verwenden, um Python 2.7 oder Python 3.3 einzuführen. http://qiita.com/murachi1208/items/202bff84964188619f57 http://www.idcf.jp/blog/cloud/software-collections-for-centos-6/

In der Realität denke ich, dass es besser ist, pyenv oder virtualenv zu verwenden, mit denen die Versionen je nach Benutzerebene entsprechend gewechselt werden können. Persönlich ist es sehr nützlich. Das individuelle Installieren und Kompilieren von Python ist ein ziemlicher Aufwand, und ich möchte manchmal verschiedene Versionen ausprobieren. Wie man es benutzt ... Es scheint, dass es so viele Materialien wie möglich gibt, wenn Sie googeln, einschließlich Qiita, also werde ich es dieses Mal weglassen. https://github.com/yyuu/pyenv-virtualenv http://qiita.com/yuta_h3/items/2988c4d0811bf8c344c0 http://qiita.com/search?page=2&q=pyenv&sort=rel&utf8=%E2%9C%93

Referenzlink

https://urllib3.readthedocs.org/en/latest/security.html?highlight=insecureplatformwarning http://stackoverflow.com/questions/29134512/insecureplatformwarning-a-true-sslcontext-object-is-not-available-this-prevent

Recommended Posts

Was tun, wenn beim Ausführen von Python eine Warnung zur unsicheren Plattform angezeigt wird?
Was tun, wenn eine Warnung zur Python-Integration in Neovims CheckHealth angezeigt wird?
Was tun, wenn bei Verwendung von Python mit der NetBeans-IDE die Warnung "Falsche Python-Plattform" angezeigt wird?
Was tun, wenn in Python "SSL: CERTIFICATE_VERIFY_FAILED _ssl.c: 1056" angezeigt wird?
[Memorandum] Was tun, wenn nach dem Ausführen der Pip-Liste eine Warnung angezeigt wird?
Was tun, wenn in pydoc keine Python-Dokumentation für ... gefunden wird?
Was tun, wenn in der Anaconda-Umgebung die Warnung "Die Umgebung ist konsistent ..." angezeigt wird
[Go 1.13] Was tun, wenn ein unerwartetes Verzeichnislayout angezeigt wird?
[openpyxl] Was tun, wenn IllegalCharacterError in pandas.DataFrame.to_excel angezeigt wird?
Was tun, wenn bei der Installation von Python mit pyenv eine Fehlermeldung angezeigt wird?
Was tun, wenn "Name xxx nicht importiert werden kann" [Python]
Was tun, wenn [Errno 2] in Python keine solche Datei oder kein solches Verzeichnis angezeigt wird?
Was tun, wenn bei der Installation von Python 2 mit pyenv ein OpenSSL-Fehler auftritt?
[Python] Was tun, wenn beim Erstellen von Exe mit PyInstaller kein Modul mit dem Namen "pyproj.datadir" angezeigt wird?
Was tun, wenn beim Importieren von matplotlib in Python (Mac) eine Fehlermeldung angezeigt wird?
Was tun, wenn `Argumente [0] .scrollIntoView ();` in Python-Selen fehlschlägt?
Was tun, wenn die Paketinstallation bei der Bereitstellung auf heroku fehlschlägt?
OSError: [Errno 40] Was tun, wenn die Nachricht zu lang erscheint?
Was tun, wenn in Django "Ungültiger HTTP_HOST-Header" angezeigt wird?
Was tun, wenn Ubuntu abstürzt?
Was tun, wenn Yum kaputt geht?
Was tun mit PYTHON Release?
Was tun, wenn beim Ausführen von "certbot erneuern" in der CakePHP-Umgebung eine Fehlermeldung angezeigt wird?
Was tun, wenn Python unter Git für Windows nicht funktioniert?
Was tun, wenn Sie pyaudio nicht mit pip #Python installieren können?
Was tun, wenn in Python minus Null angezeigt wird?
Was tun, wenn Python "schwerwiegender Fehler: Datei 'stdio.h' nicht gefunden" anzeigt?
Was tun, wenn PyAudio unter Python 3.7, 3.8, 3.9 unter Windows nicht installiert werden kann?
Was tun, wenn ModuleNotFoundError: In Python tritt kein Modul mit dem Namen 'XXX' auf
Was tun, wenn der Werttyp in Python nicht eindeutig ist?
Was tun, wenn in python json .dumps eine Dezimalstelle enthalten ist?
Was tun, wenn Sie mit Python keine E-Mail an Yahoo senden konnten?
Was tun, wenn Sie die Rastersuche von sklearn in Python nicht verwenden können?
Was tun, wenn pyinstaller: error: argument --add-binary: ungültig add_data_or_binary value: angezeigt wird
[Docker] Was tun, wenn ein Fehler aufgetreten ist? Der Binär-Git wurde nicht gefunden
[Python] Was tun, wenn ein Fehler im Zusammenhang mit der SSL-Authentifizierung zurückgegeben wird?
Was tun, wenn der Server nicht mit dem Runserver python manage.py startet?
Was tun, wenn beim Importieren von numpy mit VScode ein Fehler auftritt?
Was tun, wenn beim Laden von mnist eine Fehlermeldung angezeigt wird?
Was tun, wenn eine Warnmeldung in der Pip-Liste angezeigt wird?
Was tun, wenn pipreqs zu UnicodeDecodeError führt?
[Python] Was ich getan habe, um Unit Test zu machen
Was tun, wenn mod_fcgid UnicodeEncodeError nicht auflösen kann?
Was tun, wenn die Schienen nicht funktionieren?
Was tun, wenn pip nicht installiert werden kann?
Was tun, wenn ein PermissionError in tempfile.mkstemp auftritt?
Was tun, wenn die Autocomplete-Python von Atom nicht funktioniert?
Was ich beim Update von Python 2.6 auf 2.7 gemacht habe
Was tun, um eine Google-Tabelle in Python zu erhalten?
Was tun, wenn die Docker-Synchronisierung plötzlich nicht mehr funktioniert?
Was tun, wenn CERTIFICATE_VERIFY_FAILED auftritt, wenn nltk.download () unter macOS pyhon ausgeführt wird?
[Python] Was tun, wenn bei send_keys in Headless Chrome ein Fehler auftritt?