"SSL-Modul in Python ist nicht verfügbar" bei der Installation des Pakets mit pip3

122

Ich habe Python 3.4 und Python 3.6 erfolgreich auf meinem lokalen Computer installiert, kann jedoch keine Pakete mit installieren pip3.

Bei der Ausführung pip3 install <package>wird der folgende SSL- Fehler angezeigt:

pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Collecting <package>
  Could not fetch URL https://pypi.python.org/simple/<package>/: 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 <package> (from versions: )
No matching distribution found for <package>

Wie kann ich meine Python3.x-Installation reparieren, damit ich Pakete mit installieren kann pip install <package>?

Harukaze
quelle
4
Haben Sie pip3 mit dem Befehl explizit auf Ihrem Ubuntu installiert sudo apt-get install python3-pip?
Sidahmed
2
Bitte versuchen Sie zu pip3 install --upgrade pipsehen, ob Sie dieselbe Nachricht erhalten oder nicht.
Herry

Antworten:

92

Schritt-für-Schritt-Anleitung zur Installation von Python 3.6 und pip3 in Ubuntu

  1. Installieren Sie die erforderlichen Pakete für Python und ssl: $ sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev

  2. Laden Sie "Python-3.6.8.tar.xz" von https://www.python.org/ftp/python/ herunter und entpacken Sie es in Ihr Home-Verzeichnis.

  3. Öffnen Sie das Terminal in diesem Verzeichnis und führen Sie Folgendes aus: $ ./configure

  4. Erstellen und installieren: $ sudo make && sudo make install

  5. Installieren Sie Pakete mit: $ pip3 install package_name

Arsho
quelle
4
Arbeitete an "Raspbian GNU / Linux 9 (Stretch)"
Oktay
2
Danke dir! Ich ging im Kreis herum und brachte Python3 unter Ubuntu 14.04 zum Laufen, bis ich diese Befehlsliste fand.
Jerrylogansquare
2
Mein Ubuntu-Retter.
Markroxor
6
Das hat bei mir funktioniert. Danke vielmals. Eine Sache, die ich nicht um den Kopf wickeln konnte, warum nicht mit Schritt 4 beginnen und nur einmal "make; make install"?
Paraphiliac Strauß
1
Arbeitete in Ubuntu Beaver. Ich habe Python3.7 und Pip 19 verwendet, immer mit SSL-Problem .....
Eduardosufan
61

Wenn Sie auf Red Hat / CentOS sind:

# To allow for building python ssl libs
yum install openssl-devel
# Download the source of *any* python version
cd /usr/src
wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz
tar xf Python-3.6.2.tar.xz 
cd Python-3.6.2

# Configure the build w/ your installed libraries
./configure

# Install into /usr/local/bin/python3.6, don't overwrite global python bin
make altinstall
Der Aelfinn
quelle
funktionierte auch für Python 2.7. füge einfach make hinzu und mache altinstall
Jabda
Wenn Sie virtualenv benötigen, müssen Sie sudo /usr/local/bin/pip3.7 ausführen und virtualenv installieren. Vielen Dank für diese Antwort!
Technokrat
Hervorragend, ich hatte Probleme bei der Installation von Python 2.7.13 für ein älteres Docker-Image und musste openssl-develausgeführt werdenpython2.7 get-pip.py
Felipe
58

Wenn Sie unter Windows arbeiten und Anaconda verwenden, hat dies bei mir funktioniert:

Ich habe viele andere Lösungen ausprobiert, die nicht funktionierten (Änderungen der Umgebungs-PATH-Variablen ...)

Das Problem kann durch DLLs im Ordner Windows \ System32 (z. B. libcrypto-1_1-x64.dll oder libssl-1_1-x64.dll oder andere) verursacht werden, die von anderer Software dort abgelegt wurden.

Das Update installierte openSSL von https://slproweb.com/products/Win32OpenSSL.html, wodurch die DLLs durch neuere Versionen ersetzt wurden.

Juergi
quelle
2
Ich habe es gerade installiert. In der Liste der auf meinem System installierten Programme habe ich drei Versionen von OpenSSL (zwei 64-Bit-Versionen und eine 32-Bit-Version, obwohl ich auf einem 64-Bit-System bin). Mir ist nicht bekannt, dass ich alle installiert habe, also habe ich sie dort gelassen.
Jürgi
1
Dies war die einfachste Lösung, die ich nach langem Suchen gefunden habe. Pip funktionierte aufgrund eines OpenSSL-Fehlers nicht. Spyder stürzte auch beim Start ab, weil der Fehler "HTTPSHandler kann nicht aus 'urllib.request' importiert werden" fehlschlug. Dies wurde für mich auf Windows 10 Python 3 isoliert. Die meisten Top-Ergebnisse waren alte und komplexe Lösungen, um hoffentlich die Lösung für Leute zu verknüpfen, die googeln.
Dick McManus
8
Wenn Sie unter Windows arbeiten und Anaconda verwenden, verwenden Sie einfach Anaconda Prompt anstelle von cmd, um "pip install" auszuführen. Es ist keine zusätzliche DLL / SSL-Änderung erforderlich.
FatihAkici
1
@ FatihAkici - Vielen Dank. Es hat mir geholfen.
Raju Penumatsa
2
Ich wollte gerade meinen Computer kaputt machen, habe Pycharm auf vielen Computern und Betriebssystemen verwendet, aber auf diesem neuen Windows habe ich Anaconda installiert und es scheint, als wäre es kaputt gegangen. Ich habe ungefähr 2 Stunden lang gestöbert, vielen Dank, Kumpel. <3
Benoit F
34

Ich hatte ein ähnliches Problem unter OSX 10.11 aufgrund der Installation von memcached, bei der Python 3.7 über 3.6 installiert wurde.

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

Verbrachte Stunden damit, die Verknüpfung zu öffnen, neu zu installieren, die Pfade zu ändern ... und nichts half. Das Zurücksetzen der openssl-Version von einer älteren Version hat den Trick getan:

brew switch openssl 1.0.2e

Ich habe diesen Vorschlag nirgendwo im Internet gesehen. Hoffe, es dient jemandem.

dsomnus
quelle
3
Ich hatte das gleiche Problem mit MacOS Catalina 10.5.4 (Beta), jetzt funktioniert es. Danke dir!
Peter Rosemann
14
Für mich war es brew switch openssl 1.0.2s. Aber das war es. Du hast mich gerettet, danke!
Antonio
3
Wenn ich das versuche, aber es sagt mir immer wieder, dass openssl keine Version "1.0.2e" im Keller hat. openssl hat keine Version "1.0.2s" im Keller.
James Parker
Antonio, James: Welche ältere Version du auch hast. Mein Keller hatte 1.0.2e, also habe ich das benutzt. Ich bin froh, dass es geholfen hat.
dsomnus
4
Ich danke dir sehr! Für mich hat Ihre Lösung für den 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
25

Stimmen Sie der Antwort von mastaBlasta zu. Hat für mich gearbeitet. Ich habe das gleiche Problem wie bei der Themenbeschreibung festgestellt.

Umgebung: MacOS Sierra. Und ich benutze Homebrew.

Meine Lösung:

  1. Neuinstallation von openssl durch brew uninstall openssl; brew install openssl
  2. Gehen Sie gemäß den Hinweisen von Homebrew wie folgt vor:

    echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile
    export LDFLAGS="-L/usr/local/opt/openssl/lib"
    export CPPFLAGS="-I/usr/local/opt/openssl/include"
Nathanyu
quelle
3
Danke, der Trick ist brew uninstall openssl, brew install openssl. Ich habe versucht, brew reinstall opensslwas keine Wirkung hatte. Aber die Deinstallation / Installation funktioniert!
Jeff Tian
4
musste rennenbrew uninstall --ignore-dependencies openssl
elad silber
16

In Ubuntu kann dies helfen:

cd Python-3.6.2
./configure --with-ssl
make
sudo make install
Tingtinghuang
quelle
4
Warum müssen wir dafür eigentlich Python aus dem Quellcode erstellen? Gibt es keine Lösung, die mit Standard-Python-Distributionen funktioniert? Ich würde naiv hoffen, dass das Hinzufügen dieses Moduls möglich ist, ohne die Python-Binärdatei, für die wir den entsprechenden Quellspeicherort nicht immer leicht kennen, auf einem nicht frisch installierten Live-System zu überschreiben.
Matanster
Versuchte dies, änderte nichts
Benutzernummer
9
Ich erhalte eine Warnung, dass diese Option nicht erkannt wird
ma3oun
Ich musste diesen Befehlen mehrere "sudo" anhängen, aber sie funktionierten dort, wo andere Antworten fehlschlugen!
Paco Abato
6

Das Downgrade von openssl hat bei mir funktioniert,

brew switch openssl 1.0.2s
Nishant Nawarkhede
quelle
1
hat für mich gearbeitet, vielen Dank
Mazhar Ahmed
5

Das Problem wird wahrscheinlich dadurch verursacht, dass die Bibliothek fehlt.

Stellen Sie vor der Installation von Python 3.6 sicher, dass Sie alle für Python erforderlichen Bibliotheken installiert haben.

$ sudo apt-get install build-essential checkinstall 
$ sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev

Weitere Informationen finden Sie unter Installieren von Python 3.6.0 unter Ubuntu und LinuxMint

PengShaw
quelle
5

Wenn Sie unter OSX arbeiten und Python aus dem Quellcode kompiliert haben:

Installieren Sie openssl mit Brew brew install openssl

Befolgen Sie unbedingt die Anweisungen zum Einstellen von CPPFLAGSund LDFLAGS. In meinem Fall verwende ich die [email protected]Brühformel und benötige diese 3 Einstellungen, damit der Python-Erstellungsprozess korrekt mit meiner SSL-Bibliothek verknüpft werden kann:

export LDFLAGS="-L/usr/local/opt/[email protected]/lib"
export CPPFLAGS="-I/usr/local/opt/[email protected]/include"
export PKG_CONFIG_PATH="/usr/local/opt/[email protected]/lib/pkgconfig"

Angenommen, die Bibliothek ist an diesem Speicherort installiert.

mastaBlasta
quelle
immer noch das gleiche Problem
Gaurav Paliwal
Versuchen Sie, pip
mastaBlasta
@GauravPaliwal, @mastaBlasta: Für mich ist 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
5

Unter Windows 10 ist das gleiche Problem aufgetreten. Mein sehr spezifisches Problem ist auf die Installation von Anaconda zurückzuführen. Ich habe Anaconda installiert und unter dem Pfad Path/to/Anaconda3/kommt der python.exe. Daher habe ich Python überhaupt nicht installiert, da Anaconda Python enthält. Bei der Installation von Paketen mit pip habe ich denselben Fehlerbericht gefunden pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available..

Die Lösung war die folgende:

1) Sie können Python erneut auf der offiziellen Website herunterladen .

2) Navigieren Sie zu dem Verzeichnis, in dem "Python 3.7 (64-bit).lnk"sich das Verzeichnis befindet

3) import sslundexit()

4) Geben Sie "Python 3.7 (64-bit).lnk" -m pip install tensorflowzum Beispiel cmd ein .

Hier sind Sie fertig.

Yanqi Huang
quelle
Keine Lösung, aber auf jeden Fall erledigt. Hilft Ihnen zumindest bei der Installation fehlender Deps. Was ich auf meinem lokalen Computer festgestellt habe, ist, dass ich widersprüchliche Einträge in meiner PATH-Variablen für Python hatte (dh Anaconda 2.7 64-Bit und Python 3.7 32-Bit)
AP.
Um diese Antwort zu verbessern, können Sie den absoluten Pfad auch in einer Variablen speichern und als: cmd /c $py .\main.py( Powershell ) oder cmd /c %py% .\main.py( Dos ) ausführen . Dies führt es in Ihrer vorhandenen Shell aus und kann per Skript ausgeführt werden
AP.
5

Wenn Sie unter Windows arbeiten und Anaconda verwenden , können Sie versuchen, den Befehl "pip install ..." in der Anaconda-Eingabeaufforderung anstelle von cmd.exe auszuführen, wie der Benutzer willliu1995 hier vorschlägt . Dies war für mich die schnellste Lösung, bei der keine zusätzlichen Komponenten installiert werden müssen.

Schmetterling
quelle
4

Ich habe viele Möglichkeiten ausprobiert , um dieses Problem zu lösen, und keine hat es gelöst. Ich bin derzeit auf Windows 10.

Das einzige was funktionierte war:

  • Deinstallieren Sie Anaconda
  • Python deinstallieren (ich habe Version 3.7.3 verwendet)
  • Installieren Sie Python erneut (denken Sie daran, die Option zum automatischen Hinzufügen zu PATH zu aktivieren).

Dann habe ich alle Bibliotheken, die ich brauchte, mit PIP heruntergeladen ... und gearbeitet!

Ich weiß nicht warum oder ob das Problem irgendwie mit Anaconda zusammenhängt.

João Ignacio
quelle
3

für Benutzer von Osx Brew

Mein Problem schien im Zusammenhang mit meiner Python-Installation zu stehen und wurde durch die Neuinstallation von Python3 und Pip schnell behoben. Ich denke, es hat sich nach einem Betriebssystem-Update schlecht benommen, aber wer weiß (zur Zeit bin ich unter Mac OS 10.14.6)

brew reinstall python3 --force
# setup pip
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3 get-pip.py
# installa pkg successfully 
pip install pandas
lfender6445
quelle
Vielen Dank für diese Antwort! In meinem Fall begannen die Probleme nach dem Update auf Catalina (10.15.3), und ich stellte fest, dass Ihr erster Schritt brew reinstall python3 --forceausreichend war: Danach funktionierte ich piperneut und musste nicht neu installiert werden pip.
PLL
3

Sie können eine der beiden folgenden Aktionen ausführen:

  1. Wählen Sie während der Installation von Anaconda die Option aus, Anaconda zum Pfad hinzuzufügen .

oder

  1. Suchen Sie diese (vollständigen) Pfade in Ihrem Installationsordner von Anaconda und fügen Sie sie der Umgebungsvariablen hinzu :

\Anakonda

\ Anaconda \ Library \ mingw-w64 \ bin

\ Anaconda \ Library \ usr \ bin

\ Anaconda \ Library \ bin

\ Anaconda \ Skripte

\ anaconda \ Library

\ anaconda \ condabin

Fügen Sie die obigen Pfade zur Systemvariablen "Path" hinzu und es sollte der Fehler nicht mehr angezeigt werden :)

aymusbond
quelle
1
Eine Alternative besteht darin, die spezifische 'Anaconda-Eingabeaufforderung' zu verwenden, bei der diese Umgebungsvariablen korrekt eingerichtet sind.
Tuula
2

Ich hatte das gleiche Problem und konnte es mit den folgenden Schritten beheben:

sudo yum install -y libffi-devel
sudo yum install openssl-devel
cd /usr/src
sudo wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tar.xz
sudo tar xf Python-3.7.1.tar.xz
cd Python-3.7.1
sudo ./configure --enable-optimizations
# Install into /usr/local/bin/python3.7, don't overwrite global python bin
sudo make altinstall

Je nach Dauerwelle benötigen Sie möglicherweise kein Sudo.

Results:
Collecting setuptools
Collecting pip
Installing collected packages: setuptools, pip
Successfully installed pip-10.0.1 setuptools-39.0.1

sollte jetzt laufen können

python3.7 -V 

und

pip3.7 -V

Bei der Installation von Paketen:

pip3.7 install pandas

oder je nach Dauerwelle können Sie auch das Flag --user wie folgt hinzufügen:

pip3.7 install pandas --user
RubenD
quelle
2

Das sslModul ist ein TLS / SSL-Wrapper für den Zugriff auf den Operation Sytem (OS) -Socket ( Lib / ssl.py ). Wenn das sslModul nicht verfügbar ist, sind möglicherweise entweder keine OS OpenSSL-Bibliotheken installiert oder diese Bibliotheken wurden bei der Installation von Python nicht gefunden. Nehmen wir an, es handelt sich um einen späteren Fall (auch bekannt als: Sie haben OpenSSL bereits installiert, aber sie sind bei der Installation von Python nicht richtig verknüpft).

Ich gehe auch davon aus, dass Sie von der Quelle installieren. Wenn Sie von einer Binärdatei (dh: Windows .exe-Datei) oder einem Paket (Mac .dmg oder Ubuntu apt) installieren, können Sie mit dem Installationsprozess nicht viel anfangen.

Während des Konfigurierens Ihrer Python-Installation müssen Sie angeben, wo das Betriebssystem OpenSSL zum Verknüpfen verwendet wird:

# python 3.8 beta
./configure --with-openssl="your_OpenSSL root"

Wo finden Sie Ihr installiertes OpenSSL-Verzeichnis?

# ubuntu 
locate ssl.h | grep '/openssl/ssl.h'

/home/user/.linuxbrew/Cellar/openssl/1.0.2r/include/openssl/ssl.h
/home/user/envs/py37/include/openssl/ssl.h
/home/user/miniconda3/envs/py38b3/include/openssl/ssl.h
/home/user/miniconda3/include/openssl/ssl.h
/home/user/miniconda3/pkgs/openssl-1.0.2s-h7b6447c_0/include/openssl/ssl.h
/home/user/miniconda3/pkgs/openssl-1.1.1b-h7b6447c_1/include/openssl/ssl.h
/home/user/miniconda3/pkgs/openssl-1.1.1c-h7b6447c_1/include/openssl/ssl.h
/usr/include/openssl/ssl.h

Ihr System mag anders sein als meins, aber wie Sie hier sehen, habe ich viele verschiedene openssl-Bibliotheken installiert. Zum Zeitpunkt dieses Schreibens erwartet Python 3.8 openssl 1.0.2 oder 1.1:

Python benötigt ein OpenSSL 1.0.2- oder 1.1-kompatibles libssl mit X509_VERIFY_PARAM_set1_host ().

Sie müssten also überprüfen, welche dieser installierten Bibliotheken Sie beispielsweise zum Verknüpfen verwenden können

/usr/bin/openssl version

OpenSSL 1.0.2g  1 Mar 2016
./configure --with-openssl="/usr"
make && make install

Möglicherweise müssen Sie einige ausprobieren oder eine neue installieren, um die Bibliothek zu finden, die für Ihr Python und Ihr Betriebssystem geeignet ist.

bizi
quelle
1

In meinem Fall mit Mac habe ich gelöscht /Applications/Python 3.7. weil ich schon Python3.7 von hatte brew install python3.

Aber es war ein Auslöser der Nachricht

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

Was ich in meiner Situation getan habe

  1. Ich habe das MacOS 64-Bit-Installationsprogramm erneut heruntergeladen und installiert.
  2. Doppelklicken Sie auf /Applications/Python3.6/Install Certificates.commandund /Applications/Python3.6/Update Shell Profile.command.
  3. Starten Sie den Mac neu
  4. Und ich bin mir nicht sicher, habe aber möglicherweise zum Erfolg beigetragen pip.conf. Siehe Pip-Installation schlägt fehl .
Araya
quelle
1

Ich löse endlich dieses Problem. Dies sind die Details meiner env:
Version von Python, die installiert werden soll: 3.6.8
Betriebssystem: Ubuntu 16.04.6 LTS
Root-Zugriff: Nein

Einige Leute schlagen eine Installation vor libssl-dev, aber es hat bei mir nicht funktioniert. Ich folge diesem Link und habe ihn behoben!
Kurz gesagt, ich lade OpenSSL (openssl-1.1.1b.tar.gz) herunter, extrahiere, erstelle und installiere es. Dann ändere ich die .bashrcDatei über diesen Link .
Als nächstes lade ich Python-3.6.8.tgz herunter und extrahiere es. Ich bearbeite Modules / Setup.dist, um den SSL-Pfad zu ändern (Zeilen um # 211). Ich tat ./configure --prefix=$HOME/opt/python-3.6.8, makeund make install. Zuletzt ändere ich meine .bashrc. Beachten Sie, dass ich nicht --enable-optimizationsin ./configure.

donto
quelle
0

Wenn Sie auf MacOS Python 3.8.1 mit dem folgenden Befehl konfigurieren, wird das Problem behoben. Ich denke, es würde auch unter Linux funktionieren.

./configure --enable-optimizations --with-openssl=/usr/local/opt/openssl@1.1/

Ändern Sie den dir-Parameter basierend auf Ihrem System.

user3857893
quelle
0

Wenn Sie unter OSX arbeiten und falls die anderen Lösungen für Sie nicht funktionieren (genau wie ich).

Sie können versuchen, python3 zu deinstallieren und pip3 zu aktualisieren

brew uninstall --ignore-dependencies python3
pip3 install --upgrade pip   

Das hat bei mir funktioniert;)

Inishchith
quelle
0

(NICHT unter Windows!)

Das hat mich eine Woche lang die Haare ausreißen lassen, also hoffe ich, dass dies jemandem hilft

Ich habe alles versucht, außer Anaconda und / oder Jupyter neu zu installieren.

Konfiguration

  • AWS Linux
  • Manuell installierte Anaconda 3-5.3.0
  • Python3 (3.7) lief in Anaconda (dh ./anaconda3/bin/python )
  • es gab auch /usr/bin/pythonund /usr/bin/python3(aber diese wurden nicht verwendet, da der größte Teil der Arbeit in Jupyters Terminal erledigt wurde)

Fix

In Jupyters Terminal:

cp /usr/lib64/libssl.so.10 ./anaconda3/lib/libssl.so.1.0.0

cp /usr/lib64/libcrypto.so.10 ./anaconda3/lib/libcrypto.so.1.0.0

Was hat das ausgelöst?

Das hat also alles funktioniert, bis ich versucht habe, eine zu machen conda install conda-forge

Ich bin mir nicht sicher, was passiert ist, aber conda muss opensslauf der Box aktualisiert worden sein (ich vermute ), also ist danach alles kaputt gegangen .

Grundsätzlich mir unbekannt, hatte Conda openssl aktualisiert, aber irgendwie gelöscht , die alten Bibliotheken und ersetzte sie durch libssl.so.1.1und libcrypto.so.1.1.

Ich denke, Python3 wurde kompiliert, um danach zu suchen libssl.so.1.0.0

Am Ende war der Schlüssel zur Diagnose folgender:

python -c "import ssl; print (ssl.OPENSSL_VERSION)"

gab den Hinweis library "libssl.so.1.0.0" not found

Die große Annahme, die ich gemacht habe, ist, dass die yumVersion von ssl mit der Version identisch ist. Das condaUmbenennen des freigegebenen Objekts könnte also funktionieren, und das hat es auch getan.

Meine andere Lösung bestand darin, Python neu zu kompilieren, Anaconda neu zu installieren usw., aber am Ende bin ich froh, dass ich das nicht musste.

Hoffe das hilft euch raus.

Snowy Oz
quelle
0

Bei der Verwendung pyenvzum Verwalten von Python-Installationen unter Mac OS Catalina musste ich opensslzuerst mit Brew und dann nach diesem Lauf installieren pyenv install 3.7.8, der die Python-Installation mit dem opensslvon Homebrew zu erstellen schien (in der Installationsausgabe sogar als solches angegeben). Dann pyenv global 3.7.8und ich war weg.

ProperBritish
quelle
0

Ich konnte dies beheben, indem ich die Python-Version in dieser Datei aktualisierte. pyenv: Version `3.6.5 'ist nicht installiert (festgelegt von /Users/taruntarun/.python-version) Obwohl ich die neueste Version installiert hatte, verwendete mein Befehl immer noch die alte Version 3.6.5

Umstellung auf Version 3.7.3

Tarun Singh
quelle
-1

Ich hatte in den letzten zwei Tagen das gleiche Problem und habe es erst jetzt behoben.

Ich hatte versucht, die --trust-hostOption zu verwenden, mit der DigiCert_High_Assurance_EV_Root_CA.pemnicht funktioniert hat. Ich konnte das SSL-Modul nicht installieren (es sagt, dass es nicht für Python-Versionen größer als 2.6 installiert werden kann). Das Festlegen der $PIP_CERTVariablen hat es auch nicht behoben und ich hatte libssl1.0.2und libssl1.0.0installiert. Erwähnenswert ist auch, dass ich keine ~/.pip/pip.confDatei hatte und das Erstellen des Fehlers auch den Fehler nicht löste.

Was es schließlich löste, war die erneute Installation von python3.6 mit make. Laden Sie die Python-3.6.0.tgz von der Website, führen Sie configuredann make, make testund make install. Hoffe es funktioniert bei dir.

EC Lobo
quelle
2
Es tut uns leid, aber ich musste aufgrund dieser einfachen Aussage abstimmen, um die gleichen Schritte zu wiederholen, die diesen Fehler verursacht haben. Ich weiß nicht, wie Sie erwarten würden, dieselben Befehle auf derselben Python-Quelle auszuführen und unterschiedliche Ergebnisse zu erzielen!
Jamie Lindsey
-1

Die Python-Dokumentation ist tatsächlich sehr klar, und das Befolgen der Anweisungen hat den Job erledigt, während andere Antworten, die ich hier gefunden habe, dieses Problem nicht behoben haben.

  1. Installieren Sie zunächst Python 3.xx aus dem Quellcode, z. B. mit Version 3.6.2 https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz

  2. Stellen Sie sicher, dass Sie openssl installiert haben, indem Sie ausführen brew install openssl

  3. entpacke es und gehe in das Python-Verzeichnis: tar xvzf Python-3.6.2.tar.xz && cd Python-3.6.2

  4. Wenn die Python-Version <3.7 ist, führen Sie sie aus

CPPFLAGS="-I$(brew --prefix openssl)/include" \ LDFLAGS="-L$(brew --prefix openssl)/lib" \ ./configure --with-pydebug 5. Zum Schluss ausführen make -s -j2( -sist das stille Flag und -j2weist Ihren Computer an, 2 Jobs zu verwenden).

pglaser
quelle
j ist die Mnemonik für "Jobs", dh die Anzahl der Prozesse, die parallel ausgeführt werden, um den Build auszuführen. Das s-Flag gibt weiterhin Warnungen aus, jedoch ohne das zusätzliche Rauschen der Info- / Debug-Ebenen. Diese Flags werden in den Anweisungen für Python-Dokumente verwendet.
Pglaser
-1

Ich hatte das gleiche Problem beim Versuch, python3.7 auf einem Ubuntu14.04-Computer zu installieren. Das Problem war, dass ich einige benutzerdefinierte Ordner in meinem PKG_CONFIG_PATH und in meinem LD_LIBRARY_PATH hatte, die den Python-Erstellungsprozess daran hinderten, die OpenSL-Bibliotheken des Systems zu finden.

Versuchen Sie also, sie zu löschen und zu sehen, was passiert:

export PKG_CONFIG_PATH=""
export LD_LIBRARY_PATH=""
Loki
quelle
2
Dies würde tatsächlich den Tag von jemandem ruinieren, wenn er nützliche
Dinge
-1

Ok, die neueste Antwort darauf, verwenden Sie ab sofort nicht Python 3.8 , sondern nur 3.7 oder weniger, da die meisten Bibliotheken mit dem oben genannten Fehler nicht installiert werden können

Ujju
quelle
Soweit ich weiß, verwendet Python zugrunde liegende Pakete des Betriebssystems. Dinge wie gcc, opensslund zlib. Daher ist es wichtig, diese Voraussetzungen vor dem Kompilieren von Python zu installieren, insbesondere wenn es unter Linux verwendet wird.
Stephen
@ surfer190 Ich benutze Windows, aber was Sie gesagt haben, könnte für beide zutreffen, denke ich
Ujju