Virtualenv: Unter Windows 10 kann kein Paket über „pip“ installiert werden, das SSL-Modul in Python ist nicht verfügbar

Erstellt am 28. Feb. 2018  ·  54Kommentare  ·  Quelle: pypa/virtualenv

Python-Version: 3.6 (Intel Distribution für Python für Windows 2018 Update 1)
virtualenv-Version: 15.1.0
Windows-Version: Windows 10 Pro, Build 17101.rs4_release.180211-1040

Ich habe nur 2 Befehle ausgeführt, hier ist die Powershell-Ausgabe:

PS E:\Python\Virtualenv\Scripts> .\activate
(Virtualenv) PS E:\Python\Virtualenv\Scripts> pip install numpy
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Collecting numpy
  Could not fetch URL https://pypi.python.org/simple/numpy/: There was a problem confirming the ssl certificate: Can't connect to HTTPS URL because the SSL module is not available. - skipping
  Could not find a version that satisfies the requirement numpy (from versions: )
No matching distribution found for numpy

Dieses Verzeichnis Python ist nicht der Ort, an dem Python installiert ist, es ist nur ein normales Verzeichnis.

Ich habe versucht, ein eigenständiges OpenSSL zu installieren, wie das von hier , aber keiner von ihnen hat funktioniert.

Hilfreichster Kommentar

Ich hatte das gleiche Problem. Ich habe einen neuen Computer mit Python und Jupyter mit Anaconda konfiguriert, und das Problem trat auf, als ich versuchte, ein Paket mit pip zu installieren.

Basierend auf den obigen Diskussionen, dass dies ein Umgebungsproblem ist, habe ich versucht, den Befehl "pip install" in der Anaconda-Eingabeaufforderung anstelle von cmd auszuführen . Und der Pip-Befehl wurde ausgeführt. 😁

Alle 54 Kommentare

Ich nehme an, das verwendete pip ist das in Ihrem virtualenv . Kann Ihr _system_ pip installiert werden? Wenn nicht, ist dies möglicherweise kein virtualenv-Problem ...

@tobiasherp
Das System pip ist in Ordnung, aber das pip in der virtuellen Umgebung nützt nichts.
Ich weiß nicht, wo das Problem liegt, ich kann nicht einmal eine ähnliche Situation bei Google finden. :(
Nicht nur numpy , es kann kein Paket online installieren. Aber wenn es eine Wheel-Datei gibt, kann sie erfolgreich installiert werden, daher denke ich, dass das Problem mit SSL zusammenhängt.

Richtig, PyPI verwendet jetzt https, also brauchen Sie SSL-Unterstützung. Wenn Ihr System Python es nicht hat, hat Ihr virtualenv es auch nicht. Mit Python 3 sollten Sie in der Lage sein, ein ssl -Modul zu importieren:

>>> import ssl

Am besten wechseln Sie zu einem Interpreter, der über das Modul ssl verfügt.
Der 3.6.4-Interpreter, den ich gerade von https://www.python.org/ heruntergeladen habe, scheint SSL-Unterstützung zu haben.

AFAICS, das ist kein virtualenv Problem; vorschlagen, es zu schließen.

Es ist vielleicht kein Venv-Problem, aber es ist immer noch ein Problem. In meinem Fall kann ich nicht in venv oder system pip installieren
Ich habe IntelPython3 auf Win 10 64 Bit installiert und JA, es wurde openssl installiert und kompiliert, aber aus irgendeinem Grund funktioniert es nicht

Ich habe das gesehen: [(https://software.intel.com/en-us/forums/intel-distribution-for-python/topic/737878#comment-1920719)]

Aber ich konnte meine Version dieses Problems nicht beheben.

Jeder Rat zu diesem Thema wäre sehr hilfreich

@theCJMan tritt dieses Problem immer noch auf?

Ich habe mich mit diesem Problem beschäftigt

Am Di, 17. April 2018, 19:44 Uhr Sumana Harihareswara, [email protected]
schrieb:

@theCJMan https://github.com/theCJMan erlebst du das immer noch
Problem?


Sie erhalten dies, weil Sie erwähnt wurden.
Antworten Sie direkt auf diese E-Mail und zeigen Sie sie auf GitHub an
https://github.com/pypa/virtualenv/issues/1139#issuecomment-382081077 ,
oder den Thread stumm schalten
https://github.com/notifications/unsubscribe-auth/AkTyyw5zfrJFZleItkAkrR1_kE9R-C8Cks5tpioOgaJpZM4SWUf4
.

Transport Layer Security, oder TLS, ist ein Teil davon, wie wir sicherstellen, dass Verbindungen zwischen Ihrem Computer und PyPI privat und sicher sind. Es ist ein kryptografisches Protokoll, das im Laufe der Zeit mehrere Versionen hatte.

Sie müssen eine Verbindung zu PyPI mit einer TLS-Unterstützungsbibliothek herstellen, z. B. einer aktuellen Version von OpenSSL. Die spezifischen Schritte, die Sie ausführen müssen, hängen von Ihrer Betriebssystemversion ab, woher Ihre Installation von Python stammt (python.org, Ihr Betriebssystemanbieter oder ein zwischengeschalteter Distributor) und den installierten Versionen von Python, setuptools , pipenv und pip . Wenn Sie Hilfe benötigen, gehen Sie bitte zum #pypa IRC-Kanal auf Freenode , reichen Sie ein Problem unter pypa/packaging-problems/issues ein oder posten Sie einen Beitrag an die Mailingliste python-help , einschließlich Ihres Betriebssystems und Ihrer Installationsdetails sowie der Ausgabe von pip install -vvv pip upgraden .

Ich habe dies auch auf Macos, Python 2.7.15 erlebt - System Python hat gut funktioniert, Virtual Env konnte aufgrund von nicht installiert werden

pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.

mein system python importierte ssl gut, aber venv python gab den folgenden fehler:

raceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/Cellar/python@2/2.7.15_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py", line 126, in <module>
    from _ssl import HAS_SNI, HAS_ECDH, HAS_NPN, HAS_ALPN, HAS_TLSv1_3
ImportError: cannot import name HAS_TLSv1_3

Nach dem Löschen des env-Verzeichnisses und dem erneuten Erstellen der env funktionierte alles einwandfrei.

Ich habe das gleiche Problem wie @liurui39660 und verwende auch Intel Python Distribution und python -m venv , um mein venv zu erstellen. Es scheint ein Problem mit dem Modul ssl zu sein, das nichts mit pip zu tun hat:

(venv) C:\Users\ceefour\git\tews\ecn-svc>python
Python 3.6.3 |Anaconda custom (64-bit)| (default, May  3 2018, 23:39:44) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
Intel(R) Distribution for Python is brought to you by Intel Corporation.
Please check out: https://software.intel.com/en-us/python-distribution
>>> import ssl
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\ProgramData\Anaconda3\lib\ssl.py", line 101, in <module>
    import _ssl             # if we can't import it, let the error propagate
ImportError: DLL load failed: The operating system cannot run %1.
>>>

Beachten Sie, dass der Fehler nur ausgelöst wurde, wenn Intel Python in einem venv verwendet wurde. Wenn Sie die Basisumgebung verwenden, funktioniert es:

(base) C:\Users\ceefour>python
Python 3.6.3 |Anaconda custom (64-bit)| (default, May  3 2018, 23:39:44) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
Intel(R) Distribution for Python is brought to you by Intel Corporation.
Please check out: https://software.intel.com/en-us/python-distribution
>>> import ssl
>>> 

Update: Dieser Thread scheint ein Hinweis zu sein:

Rohit J. (Intel) Do, 07.06.2017 - 21:40
pip war sowohl mit IDP als auch mit Miniconda unter Windows unbrauchbar. Das Problem wurde durch eine widersprüchliche Bibliothek (libeay32.dll) verursacht, die im Systempfad installiert war. Zur Laufzeit hat das Laden dieser Bibliothek Vorrang vor dem, was wir mit unserer Distribution ausliefern. Es gab einen Versionskonflikt und die Ausführung schlug mit „ImportError: DLL load failed: The operating system cannot run %1.“ fehl. Durch das Entfernen dieser fremden Bibliothek aus dem Systempfad wurde das Problem behoben.

Ich habe _viele_ von libeay32.dll in C:\Program Files , einschließlich einer in C:\ProgramData\Anaconda3\Library\bin

Ich habe versucht, C:\ProgramData\Anaconda3\Library\bin vor PATH zu verschieben, aber es tritt immer noch ein Fehler auf.

Ich hatte das gleiche Problem. Ich habe einen neuen Computer mit Python und Jupyter mit Anaconda konfiguriert, und das Problem trat auf, als ich versuchte, ein Paket mit pip zu installieren.

Basierend auf den obigen Diskussionen, dass dies ein Umgebungsproblem ist, habe ich versucht, den Befehl "pip install" in der Anaconda-Eingabeaufforderung anstelle von cmd auszuführen . Und der Pip-Befehl wurde ausgeführt. 😁

Ich kämpfe seit gestern immer noch damit, nach der Installation von Python 3.7.1 mit Anaconda3

pip ist mit Standorten konfiguriert, die TLS/SSL erfordern, das SSL-Modul in Python ist jedoch nicht verfügbar.
Wiederholter Versuch (Retry(total=4, connect=None, read=None, forward=None, status=None)) nach Verbindungsabbruch durch 'SSLError("Kann keine Verbindung zur HTTPS-URL herstellen, da das SSL-Modul nicht verfügbar ist.") ': /simple/pip/
Wiederholter Versuch (Retry(total=3, connect=None, read=None, forward=None, status=None)) nach Unterbrechung der Verbindung durch 'SSLError("Kann keine Verbindung zur HTTPS-URL herstellen, da das SSL-Modul nicht verfügbar ist.") ': /simple/pip/
Wiederholter Versuch (Retry(total=2, connect=None, read=None, forward=None, status=None)) nach Verbindungsabbruch durch 'SSLError("Kann keine Verbindung zur HTTPS-URL herstellen, da das SSL-Modul nicht verfügbar ist.") ': /simple/pip/
Wiederholter Versuch (Retry(total=1, connect=None, read=None, forward=None, status=None)) nach Verbindungsabbruch durch 'SSLError("Kann keine Verbindung zur HTTPS-URL herstellen, da das SSL-Modul nicht verfügbar ist.") ': /simple/pip/
Wiederholter Versuch (Retry(total=0, connect=None, read=None, forward=None, status=None)) nach Unterbrechung der Verbindung durch 'SSLError("Kann keine Verbindung zur HTTPS-URL herstellen, da das SSL-Modul nicht verfügbar ist.") ': /simple/pip/
URL https://pypi.org/simple/pip/ konnte nicht abgerufen werden: Beim Bestätigen des SSL-Zertifikats ist ein Problem aufgetreten: HTTPSConnectionPool(host='pypi.org', port=443): Max. Wiederholungen überschritten mit URL: /simple/ pip/ (Verursacht durch SSLError("Kann keine Verbindung zur HTTPS-URL herstellen, da das SSL-Modul nicht verfügbar ist.")) - Überspringen
Voraussetzung bereits aktuell: pip in d:\anaconda3\lib\site-packages (18.1)
pip ist mit Standorten konfiguriert, die TLS/SSL erfordern, das SSL-Modul in Python ist jedoch nicht verfügbar.
URL https://pypi.org/simple/pip/ konnte nicht abgerufen werden: Beim Bestätigen des SSL-Zertifikats ist ein Problem aufgetreten: HTTPSConnectionPool(host='pypi.org', port=443): Max. Wiederholungen überschritten mit URL: /simple/ pip/ (Verursacht durch SSLError("Kann keine Verbindung zur HTTPS-URL herstellen, da das SSL-Modul nicht verfügbar ist.")) - Überspringen

Ich hatte das gleiche Problem. Mit dem Vorschlag von willliu1995 wurde das Problem gelöst. Das Ausführen von pip von der cmd-Eingabeaufforderung funktionierte nicht, aber das Starten von jupyter notebook und das Ausführen von !pip installhat funktioniert.

Wenn pip install pandas an der CMD-Eingabeaufforderung nicht funktioniert, führen Sie diese mit der Anaconda-Eingabeaufforderung aus - es funktioniert. Sie können die Anaconda-Eingabeaufforderung folgendermaßen finden:

Gehen Sie mit der Maus auf das Windows-Symbol (unten links) und geben Sie „Anaconda“ ein. Es sollten einige übereinstimmende Einträge angezeigt werden. Wählen Sie „Anaconda-Eingabeaufforderung“. Ein neues Befehlsfenster mit dem Namen "Anaconda Prompt" wird geöffnet. Quelle - https://stackoverflow.com/questions/47914980/how-to-access-anaconda-command-prompt-in-windows-10-64-bit

Wenn Sie stattdessen lieber die Windows-Eingabeaufforderung verwenden, müssen Sie die folgenden Verzeichnisse zu Ihrem Windows-Umgebungspfad hinzufügen:
%Miniconda3_DIR%;%Miniconda3_DIR%\Library\mingw-w64\bin;%Miniconda3_DIR%\Library\usr\bin;%Miniconda3_DIR%\Library\bin;%Miniconda3_DIR%\Scripts;%Miniconda3_DIR%\bin;
[wobei %Miniconda3_DIR% durch Ihren Miniconda- (oder Anaconda-) Installationspfad ersetzt werden sollte]

Zum Beispiel habe ich meine Miniconda bei E:\Portable\Miniconda3 installiert. Also musste mein Windows PATH diese Ordner enthalten:
E:\Portable\Miniconda3;E:\Portable\Miniconda3\Library\mingw-w64\bin;E:\Portable\Miniconda3\Library\usr\bin;E:\Portable\Miniconda3\Library\bin;E:\Portable\Miniconda3\Scripts;E:\Portable\Miniconda3\bin;

@shriprem Danke! Es funktionierte. Ihre Lösung bestätigt, dass dies ein Systempfadproblem ist, da es im Allgemeinen nur erforderlich ist, %Miniconda3_DIR%\Scripts zu Ihrer PATH-Variablen hinzuzufügen, um pip zu verwenden. Irgendeine Idee, warum sich das geändert hat?

@EthanBackToLife Ich habe die PATH-Umgebungsvariable in der Anaconda-Eingabeaufforderung überprüft und festgestellt, dass Anaconda all diese Verzeichnisse seiner Eingabeaufforderungs-PATH-Variablen vorangestellt hat. Also habe ich den Delta-Teil dieses Pfads an die Windows-PATH-Variable angehängt, um zu bestätigen, dass es für Pip funktioniert hat.

Beim Versuch, Conda auf einem anderen PC zu installieren, kann ich die Pfadänderungen auf einen viel kürzeren verfeinern: %Miniconda3_DIR%;%Miniconda3_DIR%\Scripts;%Miniconda3_DIR%\Library\bin
[Im Nachhinein sehen wir, dass die anderen Verzeichnisse, die dem Pfad aus meinem vorherigen Beitrag hinzugefügt wurden, bei einer neuen Conda-Installation nicht vorhanden/leer sind.]

Mit dieser Eingrenzung des Pfades können wir uns den Ordner %Miniconda3_DIR%\Library\bin ansehen. Hier finden wir Dateien wie: libcrypto-1_1-x64.dll, libcrypto-1_1-x64.pdb, libssl-1_1-x64.dll, openssl.exe, libssl-1_1-x64.pdb, openssl.pdb , die meines Erachtens entscheidend für die Lösung der SSL/TLS-Probleme bei der Installation des Pakets pip (und conda) sind.

Python-Version: 3.6 (Intel Distribution für Python für Windows 2018 Update 1)
virtualenv-Version: 15.1.0
Windows-Version: Windows 10 Pro, Build 17101.rs4_release.180211-1040

Ich habe nur 2 Befehle ausgeführt, hier ist die Powershell-Ausgabe:

PS E:\Python\Virtualenv\Scripts> .\activate
(Virtualenv) PS E:\Python\Virtualenv\Scripts> pip install numpy
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Collecting numpy
  Could not fetch URL https://pypi.python.org/simple/numpy/: There was a problem confirming the ssl certificate: Can't connect to HTTPS URL because the SSL module is not available. - skipping
  Could not find a version that satisfies the requirement numpy (from versions: )
No matching distribution found for numpy

Dieses Verzeichnis Python ist nicht der Ort, an dem Python installiert ist, es ist nur ein normales Verzeichnis.

Ich habe versucht, ein eigenständiges OpenSSL zu installieren, wie das von hier , aber keiner von ihnen hat funktioniert.

Ich bin auf dieselbe Frage gestoßen wie Sie und habe versucht, den Befehl .\activate zu verwenden, und dann die Frage perfekt beantwortet. Ich konnte Ihnen nicht mehr danken.

@EthanBackToLife Ich habe die PATH-Umgebungsvariable in der Anaconda-Eingabeaufforderung überprüft und festgestellt, dass Anaconda all diese Verzeichnisse seiner Eingabeaufforderungs-PATH-Variablen vorangestellt hat. Also habe ich den Delta-Teil dieses Pfads an die Windows-PATH-Variable angehängt, um zu bestätigen, dass es für Pip funktioniert hat.

Beim Versuch, Conda auf einem anderen PC zu installieren, kann ich die Pfadänderungen auf einen viel kürzeren verfeinern: %Miniconda3_DIR%;%Miniconda3_DIR%\Scripts;%Miniconda3_DIR%\Library\bin
[Im Nachhinein sehen wir, dass die anderen Verzeichnisse, die dem Pfad aus meinem vorherigen Beitrag hinzugefügt wurden, bei einer neuen Conda-Installation nicht vorhanden/leer sind.]

Mit dieser Eingrenzung des Pfades können wir uns den Ordner %Miniconda3_DIR%\Library\bin ansehen. Hier finden wir Dateien wie: libcrypto-1_1-x64.dll, libcrypto-1_1-x64.pdb, libssl-1_1-x64.dll, openssl.exe, libssl-1_1-x64.pdb, openssl.pdb , die meines Erachtens entscheidend für die Lösung der SSL/TLS-Probleme bei der Installation des Pakets pip (und conda) sind.

Tolle Erklärung! Danke schön.

Ich habe immer noch dieses Problem, nachdem ich das getan habe, was @shriprem kommentiert hat. Python-Version 3.7.1 und Pip-Version 18.1, falls das hilft.

" Ich kann dieses Problem lösen, indem ich den Verzeichnispfad von Intel-Python hinzufüge, der libeay32.dll (in meinem Fall ..\IntelPython3\pkgs\openssl-1.0.2l-vc14_intel_0\Library\bin) in der Systemumgebung als oberste Position hat. "

Referenz: https://software.intel.com/en-us/forums/intel-distribution-for-python/topic/737878

Ich habe festgestellt, dass es erforderlich ist, sich im Verzeichnis „Scripts“ zu befinden, um pip zu verwenden

Für Windows 10 Wenn pip install bei der CMD-Eingabeaufforderung nicht funktioniert, führen Sie es mit der Anaconda-Eingabeaufforderung aus – es funktioniert.

Wenn Sie pip in der normalen CMD verwenden möchten, nicht nur in der Anaconda-Eingabeaufforderung.
Sie müssen 3 Umgebungspfade hinzufügen.
wie diese:
D:\Anaconda3;
D:\Anaconda3\Scripts;
D:\Anaconda3\Library\bin

Die meisten Leute fügen nur D:\Anaconda3\Scripts hinzu;

Geben Sie den Pfad C:\Anaconda3\Library\bin in den Benutzervariablen der Umgebung an.
Oder
Überprüfen Sie einfach, ob Sie openssl in Basis-Python installiert haben
Wenn nicht, installieren Sie einfach mit dem folgenden Befehl
pip installiere pyopenssl

Ich glaube, die Pfade wurden korrekt hinzugefügt, aber pip funktioniert immer noch nicht, weder bei CMD noch bei der Anaconda-Eingabeaufforderung.

hast du es aus dem Verzeichnis "Scripts" versucht?

hast du es aus dem Verzeichnis "Scripts" versucht?

Wenn Sie cd xxx/Scripts und dann pip install meinen, habe ich es gerade versucht und es funktioniert nicht.

@SnarkyPapi , du sagst "Ich glaube, die Pfade wurden korrekt hinzugefügt." Um diese Tatsache zu bestätigen, führen Sie die 4 unten fett gedruckten Befehle aus.

  1. Befehl: > wo python
    Die Ausgabe sollte etwa so aussehen: _C:\Miniconda3-x64\python.exe_

  2. Befehl: > wo Pip
    Die Ausgabe sollte so aussehen: _C:\Miniconda3-x64\Scriptspip.exe_

  3. Befehl: > wobei openssl
    Die Ausgabe sollte ungefähr so ​​​​aussehen:
    [Beachten Sie, dass es möglich ist, dass openssl.exe an mehreren Stellen im Umgebungspfad installiert ist. In meinem Fall wurde openssl auch als Teil der Perl-Installation installiert]
    _C:\Perl\c\bin\openssl.exe
    C:\Miniconda3-x64\Library\bin\openssl.exe_

  4. Befehl: > wobei libssl-1_1-x64.dll
    Die Ausgabe sollte etwa so aussehen: _C:\Miniconda3-x64\Library\bin\libssl-1_1-x64.dll_

Wenn Sie für eines dieser Elemente eine Ausgabe erhalten, die besagt: „INFO: Dateien für die angegebenen Muster konnten nicht gefunden werden.“, dann fehlt eine der erforderlichen Pfadkomponenten, die für pip benötigt werden, für Ihre Umgebung.

Hallo, die 4 Befehle haben gut funktioniert, und für den 4. werden 2 Zeilen angezeigt:
C:\Windows\System32\libssl-1_1-x64.dll
C:\Anaconda\Library\bin\libssl-1_1-x64.dll

sieht so aus, als ob Sie "C:\Anaconda\Library\bin" an den Anfang Ihres $PATH setzen möchten

sieht so aus, als ob Sie "C:\Anaconda\Library\bin" an den Anfang Ihres $PATH setzen möchten
Gerade probiert und das Problem ist immer noch da.

kannst du echo %PATH%

Möglicherweise müssen Sie ein neues Terminal öffnen, damit der PATH geändert werden kann

Alternative Lösung: Ich habe es gerade geschafft, es zum Laufen zu bringen, indem ich eine pip.ini-Datei unter C:\Users\my_user_namepip erstellt habe und geschrieben habe:

[global]
index-url= http://pypi.douban.com/simple/
[Installieren]
trusted-host=pypi.douban.com

Es löst das Problem für den Moment, aber die Download-Geschwindigkeit mit diesem Mirror ist nicht wirklich hoch (etwa 800 kb/s). Gibt es eine Möglichkeit, dass es wie gewohnt funktioniert?

kannst du echo %PATH%

Möglicherweise müssen Sie ein neues Terminal öffnen, damit der PATH geändert werden kann

C:\Anaconda\Library\bin;D:\Software\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin;D:\Software\NVIDIA GPU Computing Toolkit\CUDA\v10.0\libnvvp;C:\Program Files (x86)\Gemeinsame Dateien\Oracle\Java\javapath;C:\Program Files (x86)\Razer Chroma SDK\bin;D:\Software\Razer Chroma SDK\bin;C:\windows\system32;C:\windows ;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;C:\windows\System32\OpenSSH\;C:\Programme (x86)\NVIDIA Corporation\PhysX\Common; D:\Software\PuTTY\;C:\windows\system32\config\systemprofile\AppData\Local\Microsoft\WindowsApps;D:\Software\dotnet\;D:\Software\MySQL\MySQL Utilities 1.6\;C:\ Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;D:\Software\Git\cmd;C:\Users\Cyrilpippip.ini;C:\Anaconda;C:\ Anaconda\Library\mingw-w64\bin;C:\Anaconda\Library\usr\bin;C:\Anaconda\Scripts;C:\Anaconda\bin;C:\Anaconda\Library\bin;C:\Anaconda;C :\Anaconda\Library\mingw-w64\bin;C:\Anaconda\Library\usr\bin;C:\Anaconda\Scripts;C:\Anaconda\bin;D:\Software\D ocker Toolbox;C:\Users\Cyrilpippip.ini;

SSL-Bibliotheken befinden sich in Ihrem Ordner C:\anaconda\Library\bin . Sie müssen diesen Pfad in dem Moment gesetzt haben, in dem Sie versuchen, Ihre Bibliotheken zu installieren . Dies liegt daran, dass beim Aktivieren einer virtuellen Umgebung der PATH geändert wird.

Deswegen,

  • Wenn Sie keine virtuellen Umgebungen verwenden, setzen Sie den PATH manuell auf:
set PATH=C:\anaconda;C:\anaconda\Scripts;C:\anaconda\Library\bin
pip  install any_library
or
pip install -r requirements.txt

  • Wenn Sie virtuelle Umgebungen verwenden, setzen Sie den PATH manuell auf:
set PATH=C:\venvs\ve1\;C:\venvs\ve1\Scripts;C:\anaconda\Library\bin
pip  install any_library
or
pip install -r requirements.txt

Beachten Sie, dass C:\anaconda\Library\bin in beiden Fällen konsistent ist, unabhängig davon, ob Sie in einer VM arbeiten oder nicht.

@datatravelgit Hallo, ich verwende keine virtuellen Umgebungen und es gibt immer noch dieses Problem, nachdem der Pfad manuell festgelegt wurde.

Danke für die hilfreichen Kommentare oben! Das Hinzufügen des Folgenden zur Pfadvariablen hat bei mir unter Windows 10 funktioniert:
C:\Benutzer...\Anaconda3
C:\Benutzer...\Anaconda3\Scripts
C:\Benutzer...\Anaconda3\Library\bin

Ich habe das gleiche Problem wie @liurui39660 und verwende auch Intel Python Distribution _and_ python -m venv , um mein venv zu erstellen. Es scheint ein Problem mit dem Modul ssl zu sein, das nichts mit pip zu tun hat:

(venv) C:\Users\ceefour\git\tews\ecn-svc>python
Python 3.6.3 |Anaconda custom (64-bit)| (default, May  3 2018, 23:39:44) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
Intel(R) Distribution for Python is brought to you by Intel Corporation.
Please check out: https://software.intel.com/en-us/python-distribution
>>> import ssl
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\ProgramData\Anaconda3\lib\ssl.py", line 101, in <module>
    import _ssl             # if we can't import it, let the error propagate
ImportError: DLL load failed: The operating system cannot run %1.
>>>

Beachten Sie, dass der Fehler nur ausgelöst wurde, wenn Intel Python in einem venv verwendet wurde. Wenn Sie die Basisumgebung verwenden, funktioniert es:

(base) C:\Users\ceefour>python
Python 3.6.3 |Anaconda custom (64-bit)| (default, May  3 2018, 23:39:44) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
Intel(R) Distribution for Python is brought to you by Intel Corporation.
Please check out: https://software.intel.com/en-us/python-distribution
>>> import ssl
>>> 

Update: Dieser Thread scheint ein Hinweis zu sein:

Rohit J. (Intel) Do, 07.06.2017 - 21:40
pip war sowohl mit IDP als auch mit Miniconda unter Windows unbrauchbar. Das Problem wurde durch eine widersprüchliche Bibliothek (libeay32.dll) verursacht, die im Systempfad installiert war. Zur Laufzeit hat das Laden dieser Bibliothek Vorrang vor dem, was wir mit unserer Distribution ausliefern. Es gab einen Versionskonflikt und die Ausführung schlug mit „ImportError: DLL load failed: The operating system cannot run %1.“ fehl. Durch das Entfernen dieser fremden Bibliothek aus dem Systempfad wurde das Problem behoben.

Ich habe _viele_ von libeay32.dll in C:\Program Files , einschließlich einer in C:\ProgramData\Anaconda3\Library\bin

Ich habe versucht, C:\ProgramData\Anaconda3\Library\bin vor PATH zu verschieben, aber es tritt immer noch ein Fehler auf.
-------------更新:20190327
刚 QQ 来 了 个 邮件, 点 进来 才 发现 是 这个 问题 这个 后来 解决 了 了 我 在 电脑 上 安装 了 win64openssl_light-1_1_1b.exe, 然后 Anaconda 卸载 并 重装 现在 Anaconda 和 Python 都 正常 正常

-------------- 以下 为 旧 内容 的 的, 然后 我 遇到 了 了 的 问题, 然后 我 把 Anaconda 卸载 后 重装 了 但 的 的 中 中. 刚才 我 的 的 目录 中执行ssl importieren,anaconda中的报错,另外一个不报错。如图:
GitHub Logo
我把pycharm中的路径修改后,pycharm也可以正常运行了。

Ich musste die libssl-1_1-x64.dll in meinem Ordner envs/myenv/Library/bin durch die Basis-env-DLL ersetzen. Es war nicht dasselbe. Außerdem hatte ich eine weitere libssl-1_1-x64.dll unter C:/Windows/System32/ und unter bestimmten Intel-Ordnern in C:/Program Files. Ich habe das Intel-Zeug aus dem Pfad entfernt und das unter system32 gelöscht.

Ich bin mir nicht sicher, wann die beschädigte DLL kopiert wurde, aber das Ersetzen durch die aus conda/Library/bin/ hat gut funktioniert.

Um Fehler weiter zu überprüfen, könnten Sie Ihre Umgebung aktivieren und python -c "import ssl" . Es ist ein wichtiger Unterschied, ob der Fehler "Modul nicht gefunden" (-> dll kann überhaupt nicht gefunden werden, möglicherweise ein Pfadproblem) oder "Prozedur-Einstiegspunkt nicht gefunden" (-> wahrscheinlich wurde eine beschädigte/falsche DLL gefunden ).

Ich musste die libssl-1_1-x64.dll in meinem Ordner envs/myenv/Library/bin durch die Basis-env-DLL ersetzen. Es war nicht dasselbe. Außerdem hatte ich eine weitere libssl-1_1-x64.dll unter C:/Windows/System32/ und unter bestimmten Intel-Ordnern in C:/Program Files. Ich habe das Intel-Zeug aus dem Pfad entfernt und das unter system32 gelöscht.

Ich bin mir nicht sicher, wann die beschädigte DLL kopiert wurde, aber das Ersetzen durch die aus conda/Library/bin/ hat gut funktioniert.

Um Fehler weiter zu überprüfen, könnten Sie Ihre Umgebung aktivieren und python -c "import ssl" . Es ist ein wichtiger Unterschied, ob der Fehler "Modul nicht gefunden" (-> dll kann überhaupt nicht gefunden werden, möglicherweise ein Pfadproblem) oder "Prozedur-Einstiegspunkt nicht gefunden" (-> wahrscheinlich wurde eine beschädigte/falsche DLL gefunden ).

Ich habe das gleiche Problem: "Das angegebene Verfahren konnte nicht gefunden werden." - nur in bestimmten Umgebungen.
In base env funktioniert "import ssl" gut.

Ich habe versucht, die libssl-1_1-x64.dll von env durch die libssl-1_1-x64.dll der Basis-env zu ersetzen - hat aber nicht geholfen.
Könnte es eine andere Datei geben, die das verursacht?

Für mich behoben, danke für alle Kommentare.
Das Problem wurde durch das Hinzufügen nicht behoben\Anaconda3\Library\bin zum Pfad oder sogar zum Anfang des Pfads. Dasselbe gilt für \Anaconda3\Scripts und \Anaconda3\Library\mingw-w64\bin.

Ich habe versucht, die libssl-1_1-x64.dll von env durch die libssl-1_1-x64.dll der Basis-env zu ersetzen - hat aber nicht geholfen.
Könnte es eine andere Datei geben, die das verursacht?

Das Entfernen von libssl-1_1-x64.dll und libcrypto-1_1-x64.dll in C:/Windows/System32/ hat das Problem für mich behoben.

Ich liebe dich Kumpel!
Das Entfernen von libssl-1_1-x64.dll und libcrypto-1_1-x64.dll in C:/Windows/System32/ hat das Problem für mich behoben.

Installieren Sie Win64OpenSSL_Light-1_1_1b.exe https://slproweb.com/download/Win64OpenSSL_Light-1_1_1b.exe , dann funktioniert pip gut.

versuchen Sie es mit:

pip3 install <package>

Dieses Problem kann gelöst werden, indem der Pfad durch diesen PC geändert wird
gehe zu Eigenschaften
Gehen Sie dann zu den erweiterten Einstellungen
dann Umgebungsvariablen
dann Systemvariablen
dann Weg
Pfad doppelklicken
Überprüfen Sie den Pfad des installierten Python
wenn Sie Anakonda haben
dann beide pfade löschen und
Klicken Sie dann auf Neu
Kopieren Sie dann den Pfad von Python 3.7 oder den neuesten Python-Skripts, dh
(C:\Benutzer\'Benutzername'\AppData\Local\ProgramsPythonPython37\scripts)
dann klick ok
Klicken Sie anschließend auch auf Neu
Kopieren Sie dann den Pfad C:\Benutzer\'Benutzername'\AppData\Local\ProgramsPythonPython37
Starten Sie dann das cmd als Administrator neu und versuchen Sie die Installation erneut

Lustige Sache: Ich hatte das gleiche Problem auf Android, Termux. Pip konnte sich wegen fehlendem SSL nicht mit pypi.org verbinden.
Das Problem liegt eindeutig beim SSL-Modul. Überprüfen Sie also zunächst, ob Sie SSL installiert haben. Wenn ja, aktualisieren Sie es auf die neuesten Versionen, da sich SSL-Algorithmen schnell weiterentwickeln und inkompatibel werden.
Versuchen Sie entweder, die vorhandene Bibliothek zu aktualisieren, oder installieren Sie ein besser unterstütztes Paket.

Für Anaconda/Miniconda-Benutzer unter Windows ist dies ein Problem beim Laden der Bibliothek. Informationen finden Sie in den häufig gestellten Fragen zur Fehlerbehebung unter https://conda.io/projects/conda/en/latest/user-guide/troubleshooting.html#condahttperror -http-000-connection-failed

Wie einige Benutzer angemerkt haben, können andere Installationen von openssl in den Ordner Windows\System32 außergewöhnlich problematisch sein. Informationen zu einer Problemumgehung in Python von Anaconda (und Conda-Forge) finden Sie in diesem Abschnitt zur Fehlerbehebung: https://conda.io/projects/conda/en/latest/user-guide/troubleshooting.html#numpy -mkl-library- Laden fehlgeschlagen

Sie können Anaconda-Probleme unter https://github.com/continuumio/anaconda-issues melden

Ich hatte eine Wiederholung des SSL-Problems mit Pip-Modulinstallationen. Zuvor hatte pip mehrere Monate lang einwandfrei funktioniert – nachdem der Umgebungspfad korrekt konfiguriert wurde, um die 3 Conda-Ordner einzuschließen: %Conda_DIR%;%Conda_DIR%\Scripts;%Conda_DIR%\Library\bin .

Nach ein paar Stunden des Ringens bin ich zu diesen beiden Lösungen gekommen – eine für Modulinstallationen über pip und die andere für solche über conda .

Modul installiert über Pip

Grundsätzlich musste ich aufgrund der Fehlermeldungen die Websites pypi.org und files.pythonhosted.org als vertrauenswürdige Hosts hinzufügen.

Sie könnten dies einmal tun über: pip config set global.trusted_host "pypi.org files.pythonhosted.org"
Diese Einstellungsänderung wird in der Datei C:\Users\user_name\Appdata\Roaming\pip\pip.ini (kurz %APPDATA%\pip\pip.ini ) gespeichert. Da sich dies aus der Windows-Perspektive in einem Nicht-Administrator-Benutzerordner befindet, sollte dies sicher sein.

[Falls Sie mit der 'globalen' Einstellungsänderung nicht zufrieden sind, können Sie dies bei jeder Modulinstallation wiederholen.
Zum Beispiel: pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org -U matplotlib ]

Modul wird über conda installiert

Einige Python-Module wie basemap werden nicht über Pip installiert. Ich musste stattdessen Conda verwenden.
Um den SSL-Fehler mit Conda zu überschreiben, musste ich Folgendes verwenden: conda config --set ssl_verify false

[Nach der Installation des Conda-Moduls habe ich SSL wieder aktiviert mit: conda config --set ssl_verify true ]

Während diese Probleme heute behoben werden, finden Sie die allgemeinen Informationen unter https://conda.io/projects/conda/en/latest/user-guide/troubleshooting.html#ssl -connection-errors und die spezifischen Seiteninformationen aus dem Installationsfehler Nachrichten – beide erwiesen sich als hilfreich.

Hallo, wenn ich in der Anaconda-Eingabeaufforderung pip aufgrund von TSL/SSL-Problemen nicht verwenden kann:

(base) C:\Users\joshu>pip install pandahouse
WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.

Aber ich kann alles installieren, was ich will, wenn ich Python native verwende:

C:\Users\joshu\AppData\Local\Programs\Python\Python37\Scripts>pip install scrapy
Collecting scrapy
  Downloading http....

Was ich bisher gemacht habe:

  1. Habe zuerst Python installiert
  2. Anakonda installiert
  3. Anakonda neu installiert
  4. libcrypto-1_1-x64.dll und libssl-1_1-x64.dll aus System32/ entfernt
  5. Meine Anaconda-Bibliotheken wurden zu den obersten System- und Benutzervariablen von PATH hinzugefügt
    C:\Users\joshu\Anaconda3\Library\bin
  6. Funktioniert immer noch nicht

CMD-Eingabeaufforderungsspeicherorte in nativem Python:

C:\Users\joshu\AppData\Local\Programs\Python\Python37\Scripts>where libssl-1_1-x64.dll
C:\Users\joshu\Anaconda3\Library\bin\libssl-1_1-x64.dll

C:\Users\joshu\AppData\Local\Programs\Python\Python37\Scripts>where libcrypto-1_1-x64.dll
C:\Users\joshu\Anaconda3\Library\bin\libcrypto-1_1-x64.dll

Anaconda Prompt-Standorte:

(base) C:\Users\joshu>where libssl-1_1-x64.dll
C:\Users\joshu\Anaconda3\Library\bin\libssl-1_1-x64.dll

(base) C:\Users\joshu>where libcrypto-1_1-x64.dll
C:\Users\joshu\Anaconda3\Library\bin\libcrypto-1_1-x64.dll

Ich bin mir nicht sicher, ob dies wichtig ist, aber OPENSSL_CONF C:\OpenSSL-Win64\bin\openssl.cfg erscheint über PATH in meinen Systemvariablen.

Könnte mir bitte jemand helfen? Ich bin mir nicht sicher, wie ich das lösen soll, und würde es wirklich vorziehen, Anaconda/Spyder anstelle von nativem Python zu verwenden

@jmhcodes , sehen Sie sich diesen Link an: https://stackoverflow.com/questions/41328451/ssl-module-in-python-is-not-available-when-installing-package-with-pip3

Auch bei Stackoverflow stieß ich auf eine andere Diskussion, die relevanter für das plötzliche Wiederauftreten des SSL-Zertifikatsverifizierungsfehlers war, mit dem ich auf meinem Arbeits-PC konfrontiert wurde. Der Diskussionslink lautet: https://stackoverflow.com/questions/25981703/pip-install-fails-with-connection-error-ssl-certificate-verify-failed-certi

In einigen dieser Antworten gab es diese Aussagen:

In meinem Fall waren die Zertifikate in meinem Firmennetzwerk das Problem.

und

Ich bin kürzlich auf dieses Problem gestoßen, weil der Webinhaltsfilter meines Unternehmens seine eigene Zertifizierungsstelle verwendet, um den SSL-Verkehr zu filtern.

In meinem Fall war es also die Firewall des Unternehmensnetzwerks, die meinen Pip zerstört hat. Aber das Hinzufügen files.pythonhosted.org & ** pypi.org als vertrauenswürdige Hosts hat das Problem vorerst gelöst.

Ehrlich gesagt hatte ich die zweite Stackoverflow-Diskussion nicht gesehen, als ich das Problem letzte Woche gelöst hatte, und meine Lösungsschritte hier gepostet. Eine Mehrheit der Antworten im Stackoverflow-Artikel stimmt darin überein, dass die Verwendung --trusted-host auch ihre Pip-Probleme gelöst hat. Zusätzlich zu den beiden oben genannten Seiten empfehlen sie auch das Hinzufügen pypi.python.org

@shriprem

@jmhcodes , sehen Sie sich diesen Link an: https://stackoverflow.com/questions/41328451/ssl-module-in-python-is-not-available-when-installing-package-with-pip3

Auch bei Stackoverflow stieß ich auf eine andere Diskussion, die relevanter für das plötzliche Wiederauftreten des SSL-Zertifikatsverifizierungsfehlers war, mit dem ich auf meinem Arbeits-PC konfrontiert wurde. Der Diskussionslink lautet: https://stackoverflow.com/questions/25981703/pip-install-fails-with-connection-error-ssl-certificate-verify-failed-certi

Ich habe diese beiden Beiträge auch gesehen und könnte sie als globalen vertrauenswürdigen Host hinzufügen und weggehen, aber ich fühle mich nicht wohl genug, um dies zu tun.

Was ich wirklich beantworten möchte, ist, warum Pip ohne SSL/TSL-Probleme innerhalb des nativen Python-Pakets in der cmd-Zeile funktioniert, ABER nicht in der Anaconda-Eingabeaufforderung funktioniert, obwohl openssl/libssl-1_1-x64.dll/libcrypto-1_1-x64 .dll zeigen alle auf denselben Speicherort.

@jmhcodes , führen Sie den Befehl where pip.exe sowohl in der regulären Eingabeaufforderung als auch in der Anaconda-Eingabeaufforderung aus. Geben beide denselben Pfad zu pip.exe zurück?

Hier sind einige der Unterschiede, die die Anaconda-Eingabeaufforderung gegenüber der regulären Eingabeaufforderung in ihre Umgebung bringt:

  1. Anaconda stellt 7 seiner Unterverzeichnisse ganz vorne im regulären Umgebungspfad voran. Sie können dies überprüfen, indem Sie den Befehl echo %path% in beiden Umgebungen ausführen und sie unterscheiden. Diese 7 Unterverzeichnisse sind:
    %CONDA_DIR%; %CONDA_DIR%\Library\mingw-w64\bin; %CONDA_DIR%\Library\usr\bin; %CONDA_DIR%\Library\bin; %CONDA_DIR%\Scripts; %CONDA_DIR%\bin; %CONDA_DIR%\condabin;

_ Hinweis : %CONDA_DIR% sollte durch Ihren Anaconda-Installationspfad ersetzt werden._

  1. Anaconda definiert auch diese neuen Umgebungsvariablen:
    CONDA_DEFAULT_ENV, CONDA_EXE, CONDA_PREFIX, CONDA_PROMPT_MODIFIER, CONDA_PYTHON_EXE, CONDA_SHLVL, PYTHONIOENCODING, PROJ_LIB, _CONDA_SET_PROJ_LIB
    Sie können dies überprüfen, indem Sie den Befehl set in beiden Umgebungen ausführen und sie unterscheiden.

Diese Unterschiede zwischen den beiden Umgebungen können Ihre Probleme verursachen. Es liegt an Ihnen, weiter zu graben.

Aber wenn pip.exe von beiden Umgebungen auf dieselbe Binärdatei zeigt, sollten Sie sich keine großen Gedanken darüber machen, welche Umgebung Sie zum Ausführen von pip verwenden. Außerdem wäre ich nicht allzu besorgt darüber, die sehr bekannten Pip-Sites von python.org als vertrauenswürdige Hosts hinzuzufügen. So waren viele bei stackoverflow. Das sind meine zwei Cent.

Zuletzt erwähnten Sie:

Ich bin mir nicht sicher, ob dies wichtig ist, aber OPENSSL_CONF C:\OpenSSL-Win64\bin\openssl.cfg erscheint über PATH in meinen Systemvariablen.

Das liegt daran, dass die Systemvariable OPENSSL_CONF in alphabetischer Reihenfolge vor PATH steht. Also sollte es für das Problem, das Sie haben, keine Rolle spielen. Oder habe ich deine Aussage falsch interpretiert?

Anaconda-Eingabeaufforderung
pip 19.1.1 from C:\ProgramData\Anaconda3\lib\site-packages\pip (python 3.7)

Cmd-Eingabeaufforderung
C:\Users\joshu\AppData\Local\Programs\Python\Python37\Scripts\pip.exe

Aber ich kann nicht einmal das Spyder/Anaconda-Navigationssystem oder irgendetwas anderes öffnen, das mit der Anaconda-Suite zu tun hat, außer der Anaconda-Eingabeaufforderung:

(base) C:\Users\joshu>spyder.exe
Traceback (most recent call last):
  File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\utils\external\github.py", line 51, in <module>
    from urllib2 import build_opener, HTTPSHandler, Request, HTTPError
ModuleNotFoundError: No module named 'urllib2'

Während der Behandlung der obigen Ausnahme ist eine weitere Ausnahme aufgetreten:

Traceback (most recent call last):
  File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\app\mainwindow.py", line 3285, in main
    mainwindow = run_spyder(app, options, args)
  File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\app\mainwindow.py", line 3140, in run_spyder
    main.setup()
  File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\app\mainwindow.py", line 809, in setup
    from spyder.plugins.console import Console
  File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\plugins\console.py", line 37, in <module>
    from spyder.widgets.reporterror import SpyderErrorDialog
  File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\widgets\reporterror.py", line 26, in <module>
    from spyder.widgets.github.backend import GithubBackend
  File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\widgets\github\backend.py", line 33, in <module>
    from spyder.utils.external import github
  File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\utils\external\github.py", line 58, in <module>
    from urllib.request import build_opener, HTTPSHandler, HTTPError, Request
ImportError: cannot import name 'HTTPSHandler' from 'urllib.request' (C:\ProgramData\Anaconda3\lib\urllib\request.py)

Ich arbeite mit Visual Studio Code und hatte das gleiche Problem, weil Conda Virtual Env nicht aktiv war. Ich habe das ausgeführt

imagen

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen