Anforderungen (verursacht durch SSLError ("Es kann keine Verbindung zur HTTPS-URL hergestellt werden, da das SSL-Modul nicht verfügbar ist.") Fehler in der PyCharm-Anforderungswebsite


86

Verwenden von Anforderungen in Python3 Windows über Pycharm und Empfangen des Fehlers "SSL-Modul nicht verfügbar"

Ich habe Stunden damit verbracht herauszufinden, was dies verursachen könnte. Ich habe Anaconda neu installiert und stecke völlig fest. Beim Ausführen der folgenden

def Earlybird(daycount):
    url = 'https://msft.com'
    response = requests.get(url)
    print(response)
Earlybird()

Ich erhalte den Fehler

requests.exceptions.SSLError: HTTPSConnectionPool(host='msft.com', 
port=443): Max retries exceeded with url: / (Caused by SSLError("Can't 
connect to HTTPS URL because the SSL module is not available."))

Ich habe keine Ahnung, was dies verursachen könnte. Da Anaconda kürzlich installiert wurde, würde ich davon ausgehen, dass alles auf dem neuesten Stand ist. Ich bin mir also nicht sicher, ob dies auf das falsche SSL hinweist. Ich bin ein bisschen neu in Python, also danke für deine Geduld. - -


Installierte diese slproweb.com/download/Win64OpenSSL-1_1_1c.exe von OpenSSL. Mein Problem gelöst.
Matej Novosad

Antworten:


102

Ich weiß nicht, ob dies noch behoben wurde, aber ich hatte ähnliche Probleme mit Anaconda Python 3.7.3 und Idle unter Windows 10. Es wurde behoben, indem Folgendes hinzugefügt wurde:

<path>\Anaconda3
<path>\Anaconda3\scripts
<path>\Anaconda3\Library\bin

auf die PATH-Variable.


Ich weiß zwar nicht, warum wir mehrere Pfade exportieren müssen, aber es funktioniert bei mir, danke.
Hui Chen

1
Das hat für mich funktioniert! nicht "execstack ..." cmd sondern dieses! Das Hinzufügen von Pfad / anaconda3 / library / bin hat bei mir
funktioniert

1
Sie sind sich nicht sicher, wie / wo wir diese 3 Pfade hinzufügen müssen?
Alex Dana

Alex - füge diese Elemente zur Umgebungsvariablen PATH hinzu (siehe z. B. Antwort von Mukesh Methaniya / Neuron unten)
Paul Stevens

Wo muss ich diese Pfade hinzufügen? Ich versuche, einen Python-Code aus einem bestimmten Ordner mitpython get-pip.py
Danny Hern

25

Ich bin unter Windows 10, ich hatte das Problem mit einer neuen Neuinstallation von Anaconda auf Python 3.7.4, dieser Beitrag auf Github hat mein Problem gelöst:

(Quelle: https://github.com/conda/conda/issues/8273 )

Ich zitiere:

"Meine Problemumgehung: Ich habe die folgenden Dateien kopiert

libcrypto-1_1-x64.*
libssl-1_1-x64.*

von D: \ Anaconda3 \ Library \ bin zu D: \ Anaconda3 \ DLLs.

Und es wirkt wie ein Zauber! ""


4
Gleiche Versionen von allem für mich. Windows 10 Miniconda mit 3.7.4. Mit dieser Lösung behoben.
Kevin Vasko

2
Hat für mich gearbeitet. Vielen Dank!
Tim Gottgetreu

13

Windows-Benutzer müssen die folgenden Pfade festlegen:

  • ..\Anaconda3
  • ..\Anaconda3\scripts
  • ..\Anaconda3\Library\bin

Pro Benutzer:

  1. Umgebungsvariable öffnen
  2. Klicken User Variable
  3. Schließen Sie die Eingabeaufforderung, falls sie bereits geöffnet ist, und öffnen Sie sie erneut

Systemweit (Neustart erforderlich) :

  1. Umgebungsvariable öffnen
  2. Klicken System Variable
  3. Starten Sie Windows neu




5

Ich habe keine Anaconda, also habe ich folgende Schritte unternommen:

  • brew uninstall python3
  • brew install python3
    • Your Xcode (10.2) is too outdated. Please update to Xcode 11.3 (or delete it). Xcode can be updated from the App Store.Ich habe eine Fehlermeldung erhalten, die besagt: ** Also habe ich Xcode gelöscht, da kein Update angezeigt werden würde, und dann neu installiert.
    • rannte xcode-select --installhinterher. Wenn Sie dies nicht tun, wird eine Fehlermeldung angezeigt:The following formula python cannot be installed as binary package and must be built from source. Install the Command Line Tools: xcode-select --install
  • lief brew install python3und es erfolgreich abgeschlossen.

Ich habe dieses Skript verwendet, um zu sehen, ob es funktioniert

import requests
r = requests.get('https://www.office.com')
print(r)

Lief das Skript python3 und python3.7 und die Ausgabe erfolgte <Response [200]>anstelle von SSLError.


5

Ich habe es am 04/2020 konfrontiert. Dies sind die Optionen, die ich ausprobiert habe, und die letzte Lösung bringt mich durch.

Problem:

Das Anforderungsmodul funktioniert einwandfrei, wenn ich es in Spyder IDE verwende, aber wenn ich versuche, das Skript in Windows auszuführen, schlägt es mit einem SSL-Fehler fehl. Es funktioniert gut für HTTP-Anfragen, aber für HTTPS-Anfragen habe ich einen SSL-Fehler erhalten.

  1. Ich bin müde von Veify = True, False, auch von Certs. Gleicher Fehler .
  2. Zertifikat entfernt - conda Zertifikat entfernen - Funktionierte nicht Aktualisiert
  3. openssl, certifi - Immer noch der gleiche Fehler (siehe: https://github.com/ContinuumIO/anaconda-issues/issues/494 ) Hinzugefügt
  4. die Pfadvariablen - Gleicher Fehler
  5. Neue Umgebung in Anaconda erstellt - gleicher Fehler

Lösung, die das Problem behoben hat:

Lösung von: https://github.com/conda/conda/issues/8273

Ich habe die folgenden Dateien von Anaconda3 \ Library \ bin nach \ Anaconda3 \ DLL kopiert

libcrypto-1_1-x64. * libssl-1_1-x64. *


Das hat auch bei mir funktioniert! Vielen Dank, dass Sie alle Debugging-Schritte durchlaufen haben :)
Lou

2

Ich hatte ein ähnliches Problem unter Windows 10 mit Conda und Python 2.7.2

Nachdem ich viele, viele Lösungen ausprobiert hatte, stieß ich auf diese Antwort, die darauf hinwies, dass in diesem Build ein Problem mit openssl vorliegt.

Nachdem ich Python auf 3.7.1 (Build h33f27b4_4) heruntergestuft hatte, funktionierte alles einwandfrei.


1

Wenn Sie die Anaconda-Eingabeaufforderung verwenden, müssen Sie der Umgebung keine Pfade hinzufügen .

Starten Sie die Änderung der Anaconda-Eingabeaufforderung in Ihrem Verzeichnis und führen Sie Ihr Skript aus oder starten Sie von dort aus Ihren Editor. Dadurch wird sichergestellt, dass Sie sich in der vollständigen Anaconda-Umgebung befinden und der SSL-Fehler beendet wird.

Was ist der Unterschied zwischen der Eingabeaufforderung und der Anaconda-Eingabeaufforderung? Sehen Sie sich diese SO-Antwort auf den Unterschied zwischen der Eingabeaufforderung und der Anaconda-Eingabeaufforderung an .


1

Nachdem ich einige Stunden damit verbracht hatte, die Anaconda-Dokumentation, Github-Tickets usw. durchzugehen, gelang es mir schließlich, sie unter Windows 10 64-Bit (Anaconda 3.7) zum Laufen zu bringen. Für mich funktionierte es, die Win64 OpenSSL v1.1.1d-Binärdatei von https://slproweb.com/download/Win64OpenSSL-1_1_1d.exe zu installieren .

HINWEIS : Die Version scheint wichtig zu sein! Ich habe den 1.1.0L ausprobiert (wie in anderen Kommentaren und Antworten vorgeschlagen), aber mit dieser Version blieb das Problem bestehen. Wenn Sie nach der Installation einiger OpenSSL-Bibliotheken weiterhin Probleme haben, versuchen Sie es weiter, bis Sie die richtige Version gefunden haben. Für Anaconda 3.7 unter Windows 10 scheint das 1.1.1d das richtige zu sein. Ich habe die Light-Version nicht ausprobiert.

Dinge, die bei mir nicht funktionierten :


1

Beim Ausführen einer Pip-Installation nach einer neuen Anaconda-Installation ist derselbe SSL-Fehler aufgetreten. Was half, war die Aktivierung der Basisumgebung vor der Pip-Installation. activate baseFühren Sie ein from cmd aus und führen Sie dann Ihr Python-Skript aus. Sie können auch 'conda run -n base python script.py'Reference - https://github.com/conda/conda/issues/8487 ausprobieren


1

Ich hatte das gleiche bei meiner Windows 10-Installation.

Anaconda3 nicht öffnen Anaconda Navigator , bevor ich kopiert libcrypto-1_1-x64.dll and libssl-1_1-x64.dllaus Anaconda3\Library\bin to \Anaconda3\DLL.

Nachdem ich diese pipInstallation in der Basisumgebung durchgeführt hatte, funktionierte sie einwandfrei, jedoch nicht in einer anderen von mir erstellten Umgebung. Ich musste das gleiche wie oben in der neuen Umgebung tun.

Das heißt, Kopie libcrypto-1_1-x64.dll and libssl-1_1-x64.dllvon \<env folder>\Library\binbis \<env folder>\DLLdahin hat gut funktioniert.


0

Auf die Website gehen: Gibt mir folgende Informationen aus dem Entwicklertool und zeigt mir die Header an. (Rechtsklick -> Überprüfen. Öffnen Sie dann die Registerkarte Netzwerk und überprüfen Sie die Überschriften.)

  • URL anfordern: http://www.msft.com/
  • Anforderungsmethode: GET
  • Statuscode: 200 OK
  • Remote-Adresse: 205.178.189.130:80
  • Referrer-Richtlinie: Kein Referrer beim Downgrade

Wir sehen also, dass wir eine Anfrage an HTTP und nicht an HTTPS ausführen müssen.

import requests


def Earlybird():
    url = 'http://msft.com/'
    response = requests.get(url)
    print(response.text)

if __name__ == '__main__':
    Earlybird()

0

Hinweis: Dieses Problem wurde unter Windows 10 behoben. Ich hatte das gleiche Problem mit der virtuellen Umgebung unter Windows 10. Das Problem wurde behoben, indem CMD als Administrator ausgeführt und eine neue virtuelle Umgebung erstellt wurde.

  • Führen Sie cmd als Administrator aus
  • virtuelle Umgebung erstellen (virtualenv .venv)
  • Aktivieren Sie die virtuelle Umgebung .venv \ Scripts \ enable
  • Pip Installationsanforderungen

0

In meinem Windows 10 wurde Folgendes gelöst:

mklink "C:\Users\hal\AppData\Local\Continuum\anaconda3\DLLs\libssl-1_1-x64.dll" "C:\Users\hal\AppData\Local\Continuum\anaconda3\Library\bin\libssl-1_1-x64.dll"

mklink "C:\ProgramData\Anaconda3\DLLs\libcrypto-1_1-x64.dll" "C:\ProgramData\Anaconda3\Library\bin\libcrypto-1_1-x64.dll"

0

Ich verwende VSCode zum Bearbeiten und Debuggen und die einzige Lösung, die für mich funktioniert hat, war das Bearbeiten der Umgebungsvariablen in Windows. Anscheinend verursacht dies Probleme, aber ich bin nicht sicher, was sie sind.

Das Ausführen von der Anaconda-Eingabeaufforderung (wie von sayth vorgeschlagen) war für mich KEINE Option. Oder vielleicht war der Vorschlag, die Anaconda-Eingabeaufforderung auszuführen und die Anaconda-Eingabeaufforderung irgendwie VSCode zu starten. Klingt nicht nach einer vernünftigen Anfrage.

Dies scheint ein lang anhaltendes chronisches Problem zu sein, ohne eine endgültige globale Antwort, die für alle funktioniert.



0

Nachdem Sie sich unter Windows 10 mit demselben Problem befasst haben, ist die Lösung recht einfach:

  1. Öffnen Sie eine Anaconda-Eingabeaufforderung
  2. Lauf conda init
  3. Schließen Sie alle geöffneten Python-Interpreter (PyCharm, Anaconda Prompt, cmd usw.), in denen Sie Ihren Code ausführen möchten, und öffnen Sie sie erneut

Führen Sie Ihren Code erneut aus und es sollte funktionieren. Ich hatte sowohl Anaconda als auch PyCharm aktualisiert und hatte das Problem mit allen Kombinationen von Versionen, bis ich lief conda init, was Ihren PATH ähnlich wie die Antwort von Paul Stevens ergänzt . Überspringen Sie nicht # 3 - ein Neustart von PyCharm oder einem anderen Interpreter ist der Schlüssel.


0

Dieser Fehler tritt in VSCode mit Python 3.7.3 auf, funktioniert jedoch im IDLE-Editor in Windows 10 mit Python 3.7.0 einwandfrei.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.