pip ist mit Speicherorten konfiguriert, die TLS / SSL erfordern, das SSL-Modul in Python ist jedoch nicht verfügbar

207

Ich verwende Python3.6. Wenn ich versuche, "Module" mit zu installieren, stelle ich pip3das folgende Problem fest: "pip ist mit Speicherorten konfiguriert, die TLS / SSL erfordern, das SSL-Modul in Python ist jedoch nicht verfügbar."

Santosh Kumar G.
quelle
1
Betriebssystem?
ZiTAL
1
wenn es os x ist: stackoverflow.com/questions/35280956/…
ZiTAL
1
Betriebssystem ist Oracle Linux 7.x
Santosh Kumar G
1
Haben Sie pip vom Paketmanager installiert? Wenn Sie das Kompilieren installiert haben, installieren libssl-devoder installieren Sie zuerst ssl von pip pip install ssl stackoverflow.com/questions/41098252/…
ZiTAL
37
@ ZiTAL pipfunktioniert nicht, weil sslund Sie bitten ssl, mit pip zu installieren :)
Ramazan Polat

Antworten:

188

Für Windows 10, wenn Sie pip in normalem cmd verwenden möchten, nicht nur in der Anaconda-Eingabeaufforderung. Sie müssen 3 Umgebungspfade hinzufügen. wie die folgenden:

D:\Anaconda3; 
D:\Anaconda3\Scripts; 
D:\Anaconda3\Library\bin 

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

无名 小路
quelle
1
Danke, ich habe D: \ Anaconda3 \ Library \ bin hinzugefügt und es funktioniert übrigens, die libssl-1_1-x64.dll befindet sich in diesem Ordner. (win10x64, Python 3.7)
Apet
Wenn Sie diese drei in Ihrem Pfad hinzufügen, schließen Sie das cmd, gehen Sie zurück und versuchen Sie es erneut, es sollte funktionieren.
user3568896
Was meinst du mit Umgebungspfaden? Meinst du die Umgebungsvariable PATH? Außerdem habe ich diese Ordner nicht in meinem D-Laufwerk. Soll sie bei der Installation von Anaconda erstellt werden?
Amit Raz
Ein auch für Windows 8.1
Antoine
1
Dies funktioniert NICHT, wenn Anaconda nicht verwendet wird. Ich habe dieses Problem bei Installationen mit OSGeo4W64 und QGIS 3.10.2 festgestellt. Das Hinzufügen der richtigen Pfade zur PATH-Variablen behebt das Problem nicht (z C:\Program Files\QGIS 3.10\apps\Python37\Scripts. B. :) .
CNIDog
175

MAC OS

Ich hatte das gleiche Problem unter Mac OS (Mojave) und löste das Problem, das unter diesem Link erwähnt wurde - Openssl-Problem .

  1. Wenn Sie kein Homebrew haben oder nicht wissen, was Homebrew ist:

    / usr / bin / ruby ​​-e "$ (curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install )"

  2. Oder wenn Sie Homebrew bereits installiert haben:

brew update && brew upgrade
brew uninstall --ignore-dependencies openssl; brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

Update: Denken Sie daran, dass ich --ignore-dependenciesFlag verwenden musste, da andere Pakete installiert sind, die von OpenSSL abhängen.

Wenn das Problem nach der Verwendung von pyenv verursacht wird , können Sie es mithilfe folgender Fehler beheben:

brew reinstall python
Vaulstein
quelle
5
Nach der Installation einer anderen Python Version war pip defekt. Diese Lösung half mir bei der Reparatur.
iMitwe
15
Warum wird github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb auch als Abhängigkeit hinzugefügt? :) Ich denke , es sollte entfernt werden , da sie völlig unabhängig ist und potenziell unsicheres
Mark
1
Ich verstehe, dass dies ein Sicherheitsrisiko sein könnte, aber alle Benutzer haben darum gebeten, das Paket über den offiziellen
Paketlink
1
@ Vaulstein Nun, da Sie es erwähnen. Ich glaube, ich habe einige Pakete auch mit Brew installiert, bevor dies kaputt ging. Es war gpg.
süchtig
2
Nach dem Upgrade von Mojaveauf habe Catalinaich dies getroffen. Ich brauchte nur, brew update && brew upgradedass es wieder funktionierte. Danke für den Hinweis!
rustyMagnet
35

Für Debian-Benutzer kann Folgendes von Nutzen sein:

sudo -s

apt install libssl-dev libncurses5-dev libsqlite3-dev libreadline-dev libtk8.5 libgdm-dev libdb4o-cil-dev libpcap-dev

CD dann in den Ordner mit dem Quellcode der Python 3.X-Bibliothek und führen Sie Folgendes aus:

./configure
make
make install
Rafael B.
quelle
@MehmetKurtipek, ich habe die Antwort bearbeitet, um einen Schritt zu klären. Wenn dies immer noch nicht hilft, klären Sie bitte Ihr Problem
Rafael B
5
Es stellte sich heraus, dass Python3.7 zusammen mit Ubuntu 14.04 und älter nette Probleme hat. Das mindestens erforderliche SSL-Paket für Python3.7 ist nicht mit dem alten Ubuntus kompatibel. Also danke für die Bearbeitung :)
Mehmet Kurtipek
@MehmetKurtipek Mein Server ist 1404. Also, was ist die neueste Version von Python, die dieses Problem nicht hat. Ich habe Python 3.7.4 das gleiche Problem ...
ein Angebot kann den
@MehmetKurtipek Haben Sie das Problem gelöst, ohne das System zu aktualisieren? Ich arbeite auch am 14.04.
Ein Angebot kann den
Mit Mint19 und Python 3.8 wurde mein Problem
behoben
21

Für zukünftige Oracle Linux-Benutzer, die versuchen, dieses Problem zu lösen, hat das Folgende für mich funktioniert. Installieren Sie zuerst fehlende Bibliotheken:

yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel 
readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

Dann CD in Ihre Python3.X-Bibliothek und ausführen:

make
make install 
Limboy
quelle
1
Diese Antwort hat das Problem auf meinem CentOS 7 gut behoben.
Max
Was sind diese Bibliotheken? Warum werden sie benötigt?
Mohit Motwani
Um eine sichere Verbindung über das Internet herzustellen, ist dies erforderlich - zum Beispiel, wenn Sie 'pip install'
ausführen
@MohitMotwani - fuhgeddaboudit ... urbandictionary.com/define.php?term=fuhgeddaboudit
barrypicker
20

Für Centos 7:

Installiere openssl:

sudo yum install openssl-devel

Jetzt gehe zum Python-Verzeichnis, wo wir den Python-Teer extrahiert haben.

Führen Sie die folgenden Befehle aus

sudo ./configure
sudo make
sudo make install

Dies wird das Problem in Cento beheben ...

PDHide
quelle
10

Für Windows 10, Windows 7 Wenn die Pip-Installation an der CMD-Eingabeaufforderung nicht funktioniert, führen Sie sie mit der Anaconda-Eingabeaufforderung aus - es funktioniert.

https://github.com/pypa/virtualenv/issues/1139

Tokci
quelle
6
Ich kenne die richtige Antwort. Wenn Sie pip in normalem cmd und nicht in der Anaconda-Eingabeaufforderung verwenden möchten, müssen Sie drei Umgebungspfade hinzufügen: wie folgt: D: \ Anaconda3; D: \ Anaconda3 \ Scripts; D: \ Anaconda3 \ Library \ bin jetzt nur noch Skripte!
27 小路
5

Für OpenSUSE auf die gleiche Weise, jedoch mit einigen Änderungen der oben aufgeführten Pakete:

zypper install zlib-devel libopenssl-devel ncurses-devel sqlite3-devel readline-devel tk-devel gdbm-devel libpcap-devel xz-devel

Dann cdzu Python-Quellen dir und

make
make install

oder

make
make altinstall

Und vielleicht

ln -s /usr/local/lib64/python3.6/lib-dynload/ /usr/local/lib/python3.6/lib-dynload

sollte für OpenSUSE-Benutzer ausgeführt werden. Siehe Python 3.7-Installation funktioniert nicht unter openSUSE Leap 42.3

Evgeny
quelle
4

Versuchen Sie einfach, über die Anaconda-Eingabeaufforderung zu installieren

Nishant Wattamwar
quelle
4

Hat für mich gearbeitet.

apt-get install libssl-dev

Verwenden Sie diese Option, um ssl für pip zu aktivieren. Lassen Sie mich wissen, wenn jemand auf Probleme stößt.

naman1994
quelle
4

Im Falle einer Installation mit Homebrew unter MacOS ist möglicherweise eine neuere Version verfügbar, die dies behebt:

$ brew update && brew upgrade pyenv

Dann die Python-Version neu installieren:

$ pyenv install 3.7.2
pyenv: /Users/luckydonald/.pyenv/versions/3.7.2 already exists
continue with installation? (y/N) 

Beachten Sie, dass es etwas schmutzig ist, die vorhandene Python-Installation so zu überschreiben, aber in meinem Fall hat es geklappt.

Glückydonald
quelle
3

Ich bin auf dieses Problem gestoßen, als Visual Studio Code Pylint über die VS Code-Eingabeaufforderung installiert hat. Ich konnte das Problem beheben, indem ich das Anaconda-Installationsverzeichnis öffnete und ausführte

pip install pylint

Dann war VS Code glücklich, aber das hat das Problem nicht als laufend behoben

& C:/Users/happy/Anaconda3/python.exe -m pip install -U pylint

Es gab so ziemlich den gleichen Fehler, so dass VS Code anscheinend nicht auf die Python-Module zugreifen kann.

Beachten Sie, dass VS Code die erste Python-Umgebung aufnimmt, die bei der Installation angezeigt wird. Unten links auf dem Bildschirm wird angezeigt, welche Umgebung verwendet wird. Durch Klicken auf diesen Bereich können Sie die Umgebung festlegen. Selbst wenn Sie die Pip-Installation für eine Umgebung ausgeführt haben, sieht VS Code möglicherweise anders aus.

Der beste Ansatz bestand darin, sicherzustellen, dass im VS-Code die richtige Python-Umgebung ausgewählt wurde und sich dieselbe Umgebung im Systempfad befindet (unter Systemeigenschaften -> Erweitert -> Umgebungsvariablen).

Bearbeiten Sie unter der Pfadvariablen Bearbeiten und navigieren Sie zu dem spezifischen Anaconda-Verzeichnis, das VSCode verwenden und zu PATH hinzufügen soll. Ich musste Folgendes hinzufügen:

C:\Users\happy\Anaconda3\
C:\Users\happy\Anaconda3\Scripts\
C:\Users\happy\Anaconda3\Library\bin\
C:\Users\happy\Anaconda3\Library\mingw-w64\bin\

Ihr Anaconda-Installationsverzeichnis kann abweichen. Ein Hinweis ist, dass in Windows die Variable PATH erst wirksam wird, wenn Sie das Terminal neu starten. In diesem Fall schließen Sie den VS-Code und öffnen ihn erneut. Wenn Sie ein Terminal oder eine PS-Shell verwenden, schließen Sie das Programm, öffnen Sie es erneut und überprüfen Sie den Pfad, um sicherzustellen, dass er enthalten ist.

FastGTR
quelle
3

Ähnlich wie bei der obigen Lösung installieren Sie die Python-Version mit pyenv neu.

Irgendwie habe ich mein Upgrade durchgeführt, opensslwodurch die Python-Version von pyenv kaputt ging.

pyenv install 3.6.8
python-build: use openssl@1.1 from homebrew
python-build: use readline from homebrew
...

Die erste Zeile besagt, dass es sich um das Homebrew-OpenSL handelt.

Izana
quelle
3

Ich verwende Windows 10 und installiere Miniconda 3 mit Python 3.7.

Ich habe diesen Fehler dadurch behoben https://github.com/conda/conda/issues/8273 gefolgt

Insbesondere habe ich die folgenden Dateien von C:\Users\MyUser\Miniconda3\Library\binnach kopiert C:\Users\MyUser\Miniconda3\DLLs:

  • libcrypto-1_1-x64.dll
  • libcrypto-1_1-x64.pdb
  • libssl-1_1-x64.dll
  • libssl-1_1-x64.pdb
Datchung
quelle
2

Wenn Sie Chocolatey nicht haben, installieren Sie es - von hier aus: https://chocolatey.org/docs/installation

Sie können einfach einen Befehlszeilen-Liner kopieren, einfügen und an der Eingabeaufforderung mit erhöhten Berechtigungen ausführen.

Installieren Sie anaconda über die Befehlszeile:

choco install anaconda3

Umgebungsvariablen festlegen:

set PATH=C:\tools\Anaconda3\Scripts;C:\tools\Anaconda3;C:\tools\Anaconda3\Library\bin;%PATH%

und führen Sie dann den Befehl aus, der fehlgeschlagen ist. In meinem Fall war es:

pip install conan

Anaconda verwendet eine separate Python-Installation, und pip ist auch anaconda-spezifisch.

TarmoPikaro
quelle
1

Wie Tokci sagte, funktioniert es auch für Windows 7.

"Gehen Sie mit der Maus zum Windows-Symbol (unten links) und geben Sie" Anaconda "ein. Es sollten einige übereinstimmende Einträge angezeigt werden. Wählen Sie" Anaconda Prompt ". Ein neues Befehlsfenster mit dem Namen" Anaconda Prompt "wird geöffnet."

Dann arbeitet pip.

Folgendes hat auch zum Importieren von xgboost beigetragen: https://www.youtube.com/watch?v=05djBSOs1FA

Ayan Omarov
quelle
Auf der Suche nach dem Linux-Äquivalent ... aber warum sollte das funktionieren und die Verwendung von pip über die Befehlszeile nicht? Dies ist nur dann sinnvoll, wenn Sie Anacondas Python bereits zuvor mit SSL neu erstellt haben.
Matanster
Ich habe keine Ahnung warum, aber was Sie sagen, klingt vernünftig
Ayan Omarov
1

Wenn jemand ein Arch Linux-Betriebssystem verwendet, habe ich das TLS / SSL-Problem folgendermaßen gelöst:

sudo pacman -S openssl

Dann könnte ich pip verwenden, um das Paket zu installieren, das ich brauchte:

pip install openpyxl
Anny Gutierrez
quelle
1

Gehen Sie zur Anaconda-Eingabeaufforderung und geben Sie ein (wenn Sie Python 3.x auf Ihrer Engine installiert haben):

py -m pip install pymysql 

Ich hatte das gleiche Problem und dies löste mein Problem. Später können Sie pymysql in die Power Shell oder eine andere Eingabeaufforderung importieren.

Jay Chhatrala
quelle
1

Dieses Problem ist bei der Installation von Python 3.8 von der Quelle auf Ubuntu aufgetreten. Die Schritte, die zur erfolgreichen Installation neben dem Standard-Python 3.7 erforderlich sind, sind nachstehend zusammengefasst:

sudo apt -y install libssl-dev zlib1g-dev build-essential

wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz
tar -xf Python-3.8.0.tgz
cd Python-3.8.0/

./configure --enable-optimizations
make
sudo make altinstall

Die Installationsanweisung für zlib1g-dev und build-essential ist redundant, da Ubuntu Desktop diese bereits hat, aber für einige EC2-Instanzen von Amazon erforderlich war. Python 3.8.0 ist die aktuelle Version, sollte aber durch die neueste verfügbare Version ersetzt werden.

Diese Anweisungen eignen sich am besten, um Python 3.7 als Standard für Python3 beizubehalten und Python 3.8 in einer virtuellen Umgebung auszuführen.

dmdip
quelle
1

Das Problem ist darauf zurückzuführen, dass das OpenSSL-Paket auf Ihrem PC fehlt.

Wenn pip install openpyxlauch Fehler gibt.

Sie können dies beheben, indem Sie OpenSSL (Win64 OpenSSL v1.1.1g) von der folgenden Site installieren:

slproweb.com/products/Win32OpenSSL.html

Starten Sie die von Ihnen verwendete IDE neu, damit die Änderungen wirksam werden.

Ashwani Singh
quelle
0

Ich bin auf dieses Problem gestoßen! Ich habe versehentlich die 32-Bit-Version von Miniconda3 installiert. Stellen Sie sicher, dass Sie die 64-Bit-Version wählen!

Mike
quelle
0

Das hat bei mir funktioniert:

yum install python36-pyOpenSSL 

Python-Version und Paketmanager können unterschiedlich sein.

Andrysha
quelle
0

Ich habe es versucht:

python -m pip install --upgrade pip

Und danach funktioniert es gut für mich in Windows 10.

Raj Kumar
quelle
0

Dies wurde behoben, ohne dass Änderungen an TSL / SSL vorgenommen werden mussten.

Ich habe versucht zu sehen, ob das Gleiche passiert ist pip, und gesehen, dass pipdas kaputt ist. Habe ein bisschen gegraben und festgestellt, dass es wahrscheinlich durch Homebrew gelöscht wurdepython@2 am 1. Februar 2020 wurde.

Laufen brew uninstall python@2python2 von Homebrew installiert zu löschen.

Zerstörte die virtuelle Umgebung, die mit erstellt wurde, python3und erstellte eine neue.
pip3Die Installation funktioniert wieder einwandfrei.

Gary Bao Yutong 鲍昱 彤
quelle
2
Für mich hat der Wechsel zu einer älteren Version von opensslfunktioniert: brew switch openssl 1.0.2t Ich bin unter Mac OS Catalina 10.15.3. Ich hoffe es hilft.
viraj.kulkarni
-1

Dies ist das Problem mit Ihrer Standard-SSL-Einstellung. Sie müssen Python3 herunterladen und den Pfad zu Ihrem System hinzufügen. Wenn Sie Pycharm verwenden, setzen Sie den Interpreter auf Ihren Python3-Pfad. Dann können Sie den pip3 normalerweise fehlerfrei verwenden.

Newt
quelle
-1

Das Problem liegt wahrscheinlich an Ihrer installierten OpenSSL-Paketversion. Das war bei mir der Fall und ich habe dieses Problem behoben, indem ich es nur aktualisiert habe. Ich bin unter Mac OS und verwende Brew:

brew upgrade openssl

Wenn Sie Python mit Brew installiert haben, sollte dies das Problem direkt beheben, da Python von openssl abhängig ist

claudod
quelle
-1

Sie würden es von Anaconda Prompt versuchen.

Sie werden sehen (Basis), jetzt Pip aktualisieren. Beispiel:

(base) C:\Users\Tom>cd ..

(base) C:\Users>cd ..

(base) C:\>python -m pip install --upgrade pip
Requirement already up-to-date: pip in g:\anaconda3\lib\site-packages (20.0.2)

(base) C:\>pip -V
pip 20.0.2 from G:\Anaconda3\lib\site-packages\pip (python 3.7)

# Try install
(base) C:\>pip install selenium

Dies dauert länger, installiert oder aktualisiert jedoch auch SSL-Bibliotheken, die Anaconda intern verwendet. Mach hier weiter

Gionthelawa
quelle
Diese Antwort setzt voraus, dass unter Windows conda und unter Linux nicht vanilla python verwendet wird, wie im OP angegeben
hrbdg