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>.

3voto

Ibnu Sina Punkte 69

Das Ausführen von pip install certifi hat mein Problem gelöst, bevor ich irgendein anderes Paket installiert habe.

3voto

Smaillns Punkte 1810

Sie können dies versuchen, um "https" zu ignorieren:

pip install --index-url=http://pypi.python.org/simple/ --trusted-host pypi.python.org  [Ihr Paket..]

3voto

user3080641 Punkte 31

Ich habe dieses Problem gelöst, indem ich mein Pip entfernt und die ältere Version von Pip installiert habe: https://pypi.python.org/pypi/pip/1.2.1

2voto

Ian Punkte 3662

Trotz >40 Antworten hat meines Wissens keine von ihnen das Problem vollständig für mich gelöst.

Ich benutze macOS Catalina 10.15.5 hinter einem Unternehmensproxy.

Beim Versuch, ein Paket zu installieren oder zu aktualisieren, erhielt ich den folgenden Fehler:

>>> pip install                                                                                                                            

Suche in Indexen: https://pypi.org/simple, https://data:****@pypi..com/simple/
WARNUNG: Wiederholen (Wiederholung insgesamt=4, keine Verbindung, kein Lesen, keine Umleitung, kein Status) nach Verbindungsabbruch durch 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] Zertifikat überprüfen fehlgeschlagen: kann lokales Ausstellerzertifikat nicht erhalten (_ssl.c:1108)'))': 
WARNUNG: Wiederholen (Wiederholung insgesamt=3, keine Verbindung, kein Lesen, keine Umleitung, kein Status) nach Verbindungsabbruch durch 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] Zertifikat überprüfen fehlgeschlagen: kann lokales Ausstellerzertifikat nicht erhalten (_ssl.c:1108)'))': 

Die Antwort von @Steve_Tauber pip --cert /etc/ssl/certs/FOO_Root_CA.pem install linkchecker brachte mich teilweise weiter.

Ich konnte die vorhandene Zertifikatdatei erfolgreich nutzen, um Pakete zu installieren, wie folgt:

pip install --cert /Users/me/opt/anaconda3/ssl/cert.pem --upgrade pip

Aber ich wollte nicht jedes Mal die Zertifikatflagge verwenden müssen, wenn ich pip verwenden wollte...

Die Lösung besteht darin, Umgebungsvariablen zu aktualisieren:

CERT_PATH=/Users/me/opt/anaconda3/ssl/cert.pem
export SSL_CERT_FILE=${CERT_PATH}
export REQUESTS_CA_BUNDLE=${CERT_PATH}

Und jetzt kann ich ohne Probleme installieren.

2voto

uingtea Punkte 4287

Für mich liegt das daran, dass ich zuvor ein Skript ausgeführt habe, das einen Proxy (zu Fiddler) einstellt. Das Problem wird behoben, indem ich die Konsole wieder öffne oder neu starte.

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