750 Stimmen

`pip install` schlägt fehl mit "Verbindungsfehler: [SSL: ZERTIFIKAT_VERIFY_FAILED] Zertifikat-Überprüfung fehlgeschlagen (_ssl.c:598)"

Ich bin ganz neu in Python und versuche, > pip install linkchecker auf Windows 7 zu installieren. Einige Hinweise:

  • pip install schlägt unabhängig vom Paket fehl. Zum Beispiel führt auch > pip install scrapy zu dem SSL-Fehler.
  • Die Standardinstallation von Python 3.4.1 enthielt pip 1.5.6. Das Erste, was ich versuchte zu tun, war linkchecker zu installieren. Python 2.7 war bereits installiert, es kam mit ArcGIS. python und pip waren nicht verfügbar von der Befehlszeile, bis ich 3.4.1 installierte.
  • > pip search linkchecker funktioniert. Vielleicht liegt das daran, dass pip search das SSL-Zertifikat der Site nicht überprüft.
  • Ich befinde mich in einem Firmennetzwerk, gehen aber nicht über einen Proxy ins Internet.
  • Jeder Firmencomputer (einschließlich meines) verfügt über eine vertrauenswürdige Stammzertifizierungsstelle, die aus verschiedenen Gründen verwendet wird, einschließlich der Überwachung von TLS-Verkehr zu https://google.com. Bin mir nicht sicher, ob das etwas damit zu tun hat.

Hier sind die Inhalte meiner pip.log nach Ausführung von pip install linkchecker:

Downloading/unpacking linkchecker
  Getting page https://pypi.python.org/simple/linkchecker/
  Konnte URL https://pypi.python.org/simple/linkchecker/ nicht abrufen: Verbindungsfehler: [SSL: CERTIFICATE_VERIFY_FAILED] Zertifikatüberprüfung fehlgeschlagen (_ssl.c:598)
  Wird URL https://pypi.python.org/simple/linkchecker/ überspringen, wenn nach Download-Links für linkchecker gesucht wird
  Getting page https://pypi.python.org/simple/
  Konnte URL https://pypi.python.org/simple/ nicht abrufen: Verbindungsfehler: HTTPSConnectionPool(host='pypi.python.org', port=443): Maximalanzahl der Wiederholungen mit URL: /simple/ überschritten (Verursacht durch : Request-sent)
  Wird URL https://pypi.python.org/simple/ überspringen, wenn nach Download-Links für linkchecker gesucht wird
  Kann Index-Basis-URL https://pypi.python.org/simple/ nicht abrufen
  URLs zum Suchen nach Versionen für linkchecker:
  * https://pypi.python.org/simple/linkchecker/
  Getting page https://pypi.python.org/simple/linkchecker/
  Konnte URL https://pypi.python.org/simple/linkchecker/ nicht abrufen: Verbindungsfehler: [SSL: CERTIFICATE_VERIFY_FAILED] Zertifikatüberprüfung fehlgeschlagen (_ssl.c:598)
  Wird URL https://pypi.python.org/simple/linkchecker/ überspringen, wenn nach Download-Links für linkchecker gesucht wird
  Konnte keine Downloads finden, die die Anforderung für linkchecker erfüllen
Aufräumen...
  Entferne temporäres Verzeichnis C:\Users\jcook\AppData\Local\Temp\pip_build_jcook...
Keine Verteilungen für linkchecker gefunden
Ausnahmefehlerinformationen:
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\pip\basecommand.py", Zeile 122, in main
    status = self.run(options, args)
  File "C:\Python34\lib\site-packages\pip\commands\install.py", Zeile 278, in run
    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
  File "C:\Python34\lib\site-packages\pip\req.py", Zeile 1177, in prepare_files
    url = finder.find_requirement(req_to_install, upgrade=self.upgrade)
  File "C:\Python34\lib\site-packages\pip\index.py", Zeile 277, in find_requirement
    raise DistributionNotFound('No distributions at all found for %s' % req)
pip.exceptions.DistributionNotFound: Keine Verteilungen für linkchecker gefunden

Für diese Fehlermeldung <strong>in Ihrem eigenen Code</strong> (Verwendung von <code>urllib</code>, <code>urllib2</code>, <code>requests</code> usw. zum Versuch einer Verbindung unter Verwendung von SSL), siehe <a href="https://stackoverflow.com/q/27835619">urllib und "SSL: CERTIFICATE_VERIFY_FAILED" Fehler</a>.

12voto

Ofek Hod Punkte 3744

Nicht überspringen! Gefundene sichere Lösung für Linux

Alle Lösungen zum Hinzufügen von pypi.org zu vertrauten Websites mit --trusted-host sind nicht sicher, da sie im Grunde https überspringen und das Problem nicht wirklich beheben.
Alle, die diesen Ansatz verwenden, sollten versuchen, ihr Zertifikat auf diese Weise zu aktualisieren und die --trusted-host-Flagge zu entfernen:

sudo yum -y update ca-certificates
export PIP_CERT=/etc/ssl/certs/ca-bundle.crt 

Sicherheit ist wichtig!

12voto

Thiago Falcao Punkte 3855

Sie haben 4 Optionen:

Verwenden eines Zertifikats als Parameter

$ pip install --cert /pfad/zum/meinezertifikat.crt linkchecker

Verwenden eines Zertifikats in einer pip.conf

Erstellen Sie diese Datei:

$HOME/.pip/pip.conf (Linux)

%HOME%\pip\pip.ini (Windows)

und fügen Sie diese Zeilen hinzu:

[global]
cert = /pfad/zum/meinezertifikat.crt

Zertifikat ignorieren und HTTP verwenden

$ pip install --trusted-host pypi.python.org linkchecker

Zertifikat ignorieren und HTTP in einer pip.conf verwenden

Erstellen Sie diese Datei:

$HOME/.pip/pip.conf (Linux)

%HOME%\pip\pip.ini (Windows)

und fügen Sie diese Zeilen hinzu:

[global]
trusted-host = pypi.python.org

Quelle

11voto

pmbotter Punkte 493

Die Antworten zum Verwenden

pip install --trusted-host pypi.python.org 

funktionieren. Aber du musst überprüfen, ob es Weiterleitungen oder Caches gibt, die pip verwendet. Auf Windows 7 mit pip 9.0.1 musste ich ausführen

pip install \
  --trusted-host pypi.python.org \
  --trusted-host pypi.org \
  --trusted-host files.pythonhosted.org \

Du kannst diese mit dem Verbose-Flag finden.

10voto

theofanis Punkte 119

Ich habe pip 1.2.1 mit easy_install installiert und auf die neueste Version von pip (6.0.7 zum Zeitpunkt) aktualisiert, die in der Lage ist, Pakete in meinem Fall zu installieren.

easy_install pip==1.2.1
pip install --upgrade pip

9voto

Pat B. Punkte 419

Zunächst einmal,

    pip install --trusted-host pypi.python.org 

hat bei mir nicht funktioniert. Ich habe immer den CERTIFICATE_VERIFY_FAILED Fehler erhalten. Allerdings habe ich in den Fehlermeldungen festgestellt, dass sie die Website 'pypi.org' referenzierten. Also habe ich dies als den vertrauenswürdigen Hostnamen anstelle von pypi.python.org verwendet. Das hat mich fast zum Ziel gebracht; der Ladevorgang scheiterte immer noch mit CERTIFICATE_VERIFY_FAILED, aber an einem späteren Punkt. Nachdem ich die Referenz auf die fehlerhafte Website gefunden hatte, habe ich sie als vertrauenswürdigen Host hinzugefügt. Letztendlich hat bei mir Folgendes funktioniert:

    pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X