Ich versuche, eine Python-Bibliothek mithilfe pip
eines SSL-Fehlers zu installieren :
~/projects/base pre-master± pip install xdict
Collecting xdict
Could not fetch URL https://pypi.python.org/simple/xdict/: There was a problem confirming the ssl certificate: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:590) - skipping
Could not find a version that satisfies the requirement xdict (from versions: )
No matching distribution found for xdict
Pip-Version: Pip 9.0.1
Wie behebe ich diesen Fehler?
python
python-2.7
pip
ssl-certificate
Nishant Nawarkhede
quelle
quelle
Antworten:
Aktualisieren Sie pip wie folgt:
Hinweis: Möglicherweise müssen Sie
sudo python
oben verwenden, wenn Sie sich nicht in einer virtuellen Umgebung befinden.(Beachten Sie, dass ein Upgrade
pip
mitpip
dhpip install --upgrade pip
auch nicht korrekt aktualisiert wird. Es handelt sich nur um ein Henne-Ei-Problem. Espip
funktioniert nur, wenn TLS> = 1.2 verwendet wird.)Wie in dieser detaillierten Antwort erwähnt , ist dies auf die jüngste TLS-Ablehnung für pip zurückzuführen. Python.org-Sites haben die Unterstützung für TLS-Versionen 1.0 und 1.1 eingestellt.
Auf der Python-Statusseite:
Für PyCharm (virtualenv) Benutzer:
Führen Sie eine virtuelle Umgebung mit Shell aus. (Ersetzen Sie "./venv/bin/activate" durch Ihren eigenen Pfad.)
Führen Sie das Upgrade aus
Starten Sie Ihre PyCharm-Instanz neu und überprüfen Sie Ihren Python-Interpreter in den Einstellungen .
quelle
sudo
vorne hinzufügen, weil mir die Erlaubnis verweigert wurde. Vielen Dank!curl https://bootstrap.pypa.io/get-pip.py | sudo python
sudo
wenn nicht in einer virtuellen Umgebung. Dieses Bit wurde jetzt auch in der Antwort hinzugefügt.curl https://bootstrap.pypa.io/get-pip.py | sudo -H python3
Wenn der
curl
Befehl selbst jedoch mit einem Fehler fehlschlägt oder die "tlsv1-Alarmprotokollversion" auch nach dem Upgrade bestehen bleibtpip
, bedeutet dies, dass die zugrunde liegende OpenSSL-Bibliotheksversion <1.0.1
oder Python-Version <2.7.9
(oder <3.4
in Python 3) Ihres Betriebssystems das neuere TLS 1.2-Protokoll nicht unterstützt Daspip
muss sich seit ungefähr einem Jahr mit PyPI verbinden . Sie können es einfach im Python-Interpreter überprüfen:Die
AttributeError
(anstelle der erwarteten '5') bedeutet, dass Ihr Python stdlib-ssl
Modul, das gegen die alte openssl-Bibliothek kompiliert wurde, das TLSv1.2-Protokoll nicht unterstützt (auch wenn die openssl-Bibliothek später aktualisiert werden kann oder könnte).Glücklicherweise kann es gelöst werden, ohne Python (und das gesamte System) zu aktualisieren , indem zusätzliche Python-Pakete manuell installiert werden. Die ausführliche Schritt-für-Schritt-Anleitung finden Sie hier auf Stackoverflow .
quelle
pip3
, nicht nurpip
- überprüfen Sie die Version mit dem Befehl-V
, um sicherzustellen, dass Sie den richtigen Pip ausführen !!Das Befolgen der Antwort von @ Anupam unter OS X führte zu dem folgenden Fehler für mich, unabhängig von den Berechtigungen, mit denen ich es ausgeführt habe:
Was schließlich funktionierte, war, ein neueres Pip-Paket (9.0.3) von PyPI direkt von meinem Browser herunterzuladen - https://pypi.org/simple/pip/ , den Inhalt zu extrahieren und das Paket dann lokal zu installieren:
Dies hat meine
[SSL: TLSV1_ALERT_PROTOCOL_VERSION]
Fehler behoben .quelle
Die Lösung von @Anupam hat bei mir funktioniert. Ich musste jedoch
sudo
den genauen Speicherort meiner virtuellen Python-Umgebung verwenden und angeben:quelle
Um die lokale Version zu aktualisieren, habe ich eine leichte Variante verwendet:
Dieses Problem tritt auf, wenn Sie Ihre Pip und Pakete wie in dieser Übersicht beschrieben in Ihrem Home-Verzeichnis aufbewahren .
quelle
Die folgende Lösung hat bei mir funktioniert:
Es wurde auch auf
pip
Version 1.10.1 aktualisiertquelle
Überprüfen Sie Ihre TLS-Version:
Wenn Ihre TLS-Version kleiner als 1.2 ist, müssen Sie sie aktualisieren, da sich das PyPI-Repository in einer Sperrphase befindet, in der frühes TLS nicht mehr unterstützt wird.
Quelle - Zeit für ein Upgrade Ihres Python: TLS v1.2 wird bald obligatorisch sein
Sie können die TLS-Version mit dem folgenden Befehl aktualisieren:
Dies sollte Ihr Problem beheben. Viel Glück!
BEARBEITEN: Sie können Pakete unabhängig von der TLS-Version mit Ihrem eigenen privaten Python-Paket-Repository herunterladen. Privates Python-Paket-Repository
quelle
Das hat bei mir funktioniert. Fügen Sie Sudo vor Python hinzu
quelle
Für Python2 WIN10-Benutzer:
1.Deinstallieren Sie Python gründlich und schließen Sie alle Ordner ein.
2. Holen Sie sich den neuesten Python-2.7.msi (Version 2.7.15) und installieren Sie ihn.
3.Nach Schritt 2 wurde möglicherweise auch pip installiert.
4. Wenn Ihr System nicht geändert wurde, können Sie jetzt mit pip Pakete installieren. Die "tlsv1-Alarmprotokollversion" wird nicht angezeigt.
quelle
Ich habe alle vorhandenen Korrekturen ausprobiert und nicht für mich gearbeitet
Ich installiere Python 2.7 neu (wird auch pip installieren), indem ich .pkg unter https://www.python.org/downloads/mac-osx/ herunterlade.
funktioniert für mich nach der Installation heruntergeladen pkg
quelle
Ich bin auch auf dieses Problem gestoßen. Das zugrunde liegende Problem ist, dass die SSL-Bibliothek in Python 2.7-Versionen <2.7.9 nicht mehr mit dem Pip-Mechanismus kompatibel ist.
Wenn Sie unter Windows ausgeführt werden und (wie wir) kein einfaches Upgrade von einer inkompatiblen Version von 2.7, FWIW, durchführen können, habe ich festgestellt, dass Sie die folgenden Dateien aus einer anderen Installation der neuesten Version von Python (z. B. Python 2.7) kopieren. 15) auf einem anderen Computer zu Ihrer Installation:
Dadurch wird Ihre SSL-Schicht effektiv auf eine unterstützte Schicht "aktualisiert". Wir konnten dann wieder pip verwenden, sogar um pip zu aktualisieren.
quelle
Das hat bei mir funktioniert, ich habe die neueste Version von pip installiert und dann die Bibliothek ( ciscoconfparse ) installiert .
Pip aktualisieren:
quelle
myenv:
Python 2.7.14
pip 9.0.1
mac osx 10.9.4
meine Lösung:
get-pip.py
manuell von https://packaging.python.org/tutorials/installing-packages/ herunterladenLauf
python get-pip.py
refs:
https://github.com/pypa/warehouse/issues/3293#issuecomment-378468534
https://packaging.python.org/tutorials/installing-packages/
quelle
Ich habe dieses Problem auch unter Windows 10 festgestellt und alle Antworten ausprobiert, aber mein Problem nicht gelöst.
Danach finde ich, dass die Pip-Konfigurationsdatei geändert wurde. Also habe ich
pip.ini
die ursprüngliche Standardkonfiguration festgelegt, den Befehl pip erneut ausgeführt und es funktioniert für mich!Zusammenfassend die Lösung von mir:
Überprüfen Sie, ob die pip.ini (normalerweise unter dem Pfad
C:\ProgramData\pip
) geändert wurde.Wenn dies in Schritt 1 der Fall ist, versuchen Sie, die Standardkonfiguration wiederherzustellen.
quelle
Oder einfach ist die benötigte Bibliothek einfach nicht im Repo. Ich bin Python-Neuling und alle Ratschläge zum Aktualisieren von Pip werden schließlich als irreführend angezeigt. Ich musste nur in https://pypi.org/ nachsehen und feststellen, dass die Bibliothek (in meinem Fall der Luftstrom) bei einer alten Version gestoppt war, wonach sie umbenannt wurde. Ja, auch diese dumme Lösung ist möglich :-).
quelle
Für alle
python3
undpip3
Benutzer da draußen:und dann nehmen Sie an, Sie möchten Pandas installieren
quelle
Die Antworten zur Installation von pip via:
curl https://bootstrap.pypa.io/get-pip.py |sudo python
odercurl https://bootstrap.pypa.io/get-pip.py | python
hat bei mir nicht funktioniert, da ich immer wieder den Fehler bekam:
Ich musste
pip
manuell installieren über:pip
Verteilung Websitetar.gz
Version heruntercd
in das Verzeichnispython setup.py install
quelle