„Moduł ssl w Pythonie jest niedostępny” podczas instalowania pakietu za pomocą pip3

123

Zainstalowałem Python 3.4 i Python 3.6 na moim komputerze lokalnym, ale nie mogę zainstalować pakietów z pip3.

Kiedy wykonuję pip3 install <package>, otrzymuję następujący błąd związany z SSL :

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>

Jak mogę naprawić moją instalację Python3.x, aby móc instalować pakiety z pip install <package>?

Harukaze
źródło
4
Czy jawnie zainstalowałeś pip3 na swoim Ubuntu za pomocą polecenia sudo apt-get install python3-pip?
Sidahmed
2
Spróbuj pip3 install --upgrade pipi sprawdź, czy otrzymujesz tę samą wiadomość, czy nie.
herry

Odpowiedzi:

93

Przewodnik krok po kroku dotyczący instalacji Pythona 3.6 i pip3 w Ubuntu

  1. Zainstaluj niezbędne pakiety dla Pythona i ssl: $ sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev

  2. Pobierz i rozpakuj „Python-3.6.8.tar.xz” z https://www.python.org/ftp/python/ do swojego katalogu domowego.

  3. Otwórz terminal w tym katalogu i uruchom: $ ./configure

  4. Zbuduj i zainstaluj: $ sudo make && sudo make install

  5. Zainstaluj pakiety za pomocą: $ pip3 install package_name

arsho
źródło
4
Pracowałem nad „Raspbian GNU / Linux 9 (stretch)”
Oktay,
2
Dziękuję Ci! Chodziłem w kółko, aby Python3 działał na Ubuntu 14.04, dopóki nie znalazłem tej listy poleceń.
jerrylogansquare
2
Mój wybawca Ubuntu.
markroxor
6
To zadziałało dla mnie. Wielkie dzięki. Jedna rzecz, której nie mogłem sobie wyobrazić, dlaczego nie zacząć od kroku 4 i tylko raz wykonać polecenie „make; make install”?
Paraphiliac Ostrich
1
Pracował w Ubuntu Beaver. Używałem python3.7 i pip 19, zawsze z problemem SSL .....
eduardosufan
62

Jeśli korzystasz z Red Hat / CentOS:

# 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
Aelfinn
źródło
działał również dla Pythona 2.7. po prostu dodaj markę i zrób altinstall
Jabda
Jeśli potrzebujesz virtualenv, musisz uruchomić sudo /usr/local/bin/pip3.7 install virtualenv. Dziękuję za tę odpowiedź!
technokrata
świetnie, miałem problem z instalacją Pythona 2.7.13 dla starszego obrazu dockera i potrzebowałem openssl-develgo uruchomićpython2.7 get-pip.py
Felipe
59

Jeśli korzystasz z systemu Windows i używasz anacondy, to zadziałało:

Wypróbowałem wiele innych rozwiązań, które nie działały (zmiana zmiennej PATH środowiska ...)

Problem może być spowodowany przez biblioteki DLL w folderze Windows \ System32 (np. Libcrypto-1_1-x64.dll lub libssl-1_1-x64.dll lub inne) umieszczone tam przez inne oprogramowanie.

Poprawka polegała na zainstalowaniu openSSL z https://slproweb.com/products/Win32OpenSSL.html, który zastępuje biblioteki DLL nowszymi wersjami.

juergi
źródło
2
Właśnie to zainstalowałem. Na liście programów zainstalowanych w moim systemie mam trzy wersje OpenSSL (dwie wersje 64-bitowe i jedna wersja 32-bitowa, chociaż korzystam z systemu 64-bitowego). Nie jestem świadomy, że zainstalowałem je wszystkie, więc zostawiłem je tam.
juergi
1
To było najprostsze rozwiązanie, jakie znalazłem po wielu poszukiwaniach. Pip nie działał z powodu błędu OpenSSL. Spyder również uległ awarii podczas uruchamiania z powodu błędu „nie można zaimportować nazwy„ HTTPSHandler ”z„ urllib.request ””. To było dla mnie izolowane do systemu Windows 10 Python 3. Komentując, aby, miejmy nadzieję, pomóc połączyć rozwiązanie dla osób googlujących, większość najlepszych wyników to stare i złożone rozwiązania.
Dick McManus,
8
Jeśli jesteś w systemie Windows i używasz Anacondy, po prostu użyj Anaconda Prompt zamiast cmd, aby uruchomić "pip install". Nie będzie wymagana żadna dodatkowa zmiana DLL / SSL.
FatihAkici
1
@FatihAkici - Wielkie dzięki. Pomogło mi.
Raju Penumatsa
2
Miałem zamiar zepsuć komputer, użyłem pycharm na wielu komputerach i systemach operacyjnych, ale na tym nowym Windowsie zainstalowałem anakondę i wygląda na to, że zepsuł pip. Przeglądałem przez jakieś 2 godziny, bardzo dziękuję kolego. <3
Benoit F
35

Miałem podobny problem na OSX 10.11 z powodu zainstalowania memcached, który zainstalował Pythona 3.7 nad 3.6.

OSTRZEŻENIE: pip jest skonfigurowany z lokalizacjami, które wymagają TLS / SSL, jednak moduł ssl w Pythonie nie jest dostępny.

Spędziłem godziny na odłączaniu openssl, ponownej instalacji, zmianie ścieżek ... i nic nie pomogło. Zmiana wersji openssl z powrotem na starszą załatwiła sprawę:

brew switch openssl 1.0.2e

Nie widziałem tej sugestii nigdzie w Internecie. Mam nadzieję, że to komuś służy.

dsomnus
źródło
3
Miałem ten sam problem z MacOS Catalina 10.5.4 (Beta), teraz działa. Dziękuję Ci!
Peter Rosemann
14
Dla mnie to było brew switch openssl 1.0.2s. Ale to było to. Uratowałeś mnie, dzięki!
antonio
3
Próbuję tego, ale ciągle mi mówi, że openssl nie ma wersji „1.0.2e” w piwnicy. openssl nie ma wersji „1.0.2s” w piwnicy.
James Parker
Antonio, James: jakąkolwiek starszą wersję masz. Moja piwnica miała 1.0.2e, więc użyłem tego. Cieszę się, że pomogło.
dsomnus
4
Dziękuję bardzo! Dla mnie Twoje rozwiązanie przejścia na starszą wersję openssldziałało: brew switch openssl 1.0.2t Jestem na Mac OS Catalina 10.15.3. Mam nadzieję, że to pomoże.
viraj.kulkarni
25

Zgadzam się z odpowiedzią mastaBlasta. Pracował dla mnie. Napotkałem ten sam problem co opis tematu.

Środowisko: MacOS Sierra. Używam Homebrew.

Moje rozwiązanie:

  1. Zainstaluj ponownie openssl przez brew uninstall openssl; brew install openssl
  2. Zgodnie ze wskazówkami udzielonymi przez Homebrew wykonaj następujące czynności:

    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
źródło
3
Dzięki, sztuczka w tym brew uninstall openssl, brew install openssl. Próbowałem, brew reinstall opensslale bez skutku. Ale odinstalowanie / instalacja działa!
Jeff Tian,
6
musiał biecbrew uninstall --ignore-dependencies openssl
elad silver
16

W Ubuntu może to pomóc:

cd Python-3.6.2
./configure --with-ssl
make
sudo make install
tingtinghuang
źródło
4
Dlaczego właściwie musimy w tym celu budować Pythona ze źródeł? czy nie ma rozwiązania, które działałoby ze standardowymi dystrybucjami Pythona? Miałbym naiwną nadzieję, że dodanie tego modułu byłoby możliwe bez nadpisywania pliku binarnego Pythona, dla którego nie zawsze łatwo znamy odpowiednią lokalizację źródłową, w systemie na żywo, który nie jest świeżo zainstalowany.
matanster
Próbowałem tego, nic nie zmieniłem
numer użytkownika
10
Otrzymuję ostrzeżenie, że ta opcja nie jest rozpoznawana
ma3oun
Musiałem dodać kilka „sudo” do tych poleceń, ale działały tam, gdzie inne odpowiedzi zawiodły!
Paco Abato
6

Obniżenie poziomu openssl zadziałało dla mnie,

brew switch openssl 1.0.2s
Nishant Nawarkhede
źródło
1
pracował dla mnie, wielkie dzięki
Mazhar Ahmed
5

Problem prawdopodobnie spowodowany brakiem biblioteki.

Zanim zainstalujesz Pythona 3.6, upewnij się, że zainstalowałeś wszystkie biblioteki wymagane dla Pythona.

$ 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

Więcej informacji w Jak zainstalować Python 3.6.0 na Ubuntu i LinuxMint

PengShaw
źródło
5

Jeśli jesteś na OSX i skompilowałeś Pythona ze źródła:

Zainstaluj openssl za pomocą brew brew install openssl

Postępuj zgodnie z instrukcjami, które podaje napar na temat ustawiania CPPFLAGSi LDFLAGS. W moim przypadku używam [email protected]formuły parzenia i potrzebuję tych 3 ustawień, aby proces kompilacji Pythona poprawnie łączył się z moją biblioteką SSL:

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"

Zakładając, że biblioteka jest zainstalowana w tej lokalizacji.

mastaBlasta
źródło
wciąż ten sam problem
Gaurav Paliwal
Spróbuj przeinstalować pip
mastaBlasta
@GauravPaliwal, @mastaBlasta: Dla mnie przejście na starszą wersję openssldziałało: brew switch openssl 1.0.2t Jestem na Mac OS Catalina 10.15.3. Mam nadzieję, że to pomoże.
viraj.kulkarni
5

Napotkałem ten sam problem w systemie Windows 10. Mój bardzo specyficzny problem jest związany z instalacją Anacondy. Zainstalowałem Anacondę i pod ścieżką Path/to/Anaconda3/pojawia się plik python.exe. Dlatego w ogóle nie zainstalowałem Pythona, ponieważ Anaconda zawiera Pythona. Podczas korzystania pip zainstalować pakiety, znalazłem ten sam raport o błędzie pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available..

Rozwiązanie było następujące:

1) możesz ponownie pobrać Pythona z oficjalnej strony internetowej ;

2) Przejdź do katalogu, w którym "Python 3.7 (64-bit).lnk"się znajduje

3) import ssliexit()

4) wpisz "Python 3.7 (64-bit).lnk" -m pip install tensorflownp. Cmd .

Masz wszystko gotowe.

Yanqi Huang
źródło
Nie jest to poprawka, ale zdecydowanie wykonuje swoją pracę. Przynajmniej pomaga zainstalować brakujące pliki. Na moim komputerze lokalnym zdałem sobie sprawę, że mam sprzeczne wpisy w mojej zmiennej PATH dla Pythona (tj. Anaconda 2.7 64-bit i Python 3.7 32-bit)
AP.
Aby ulepszyć tę odpowiedź, możesz zapisać ścieżkę bezwzględną w zmiennej i uruchomić ją jako: cmd /c $py .\main.py( Powershell ) lub cmd /c %py% .\main.py( Dos ). Spowoduje to uruchomienie go w istniejącej powłoce i można go uruchomić za pomocą skryptu
AP.
5

Jeśli jesteś w systemie Windows i używasz Anacondy , możesz spróbować uruchomić polecenie "pip install ..." w Anaconda Prompt zamiast cmd.exe, jak sugeruje tutaj użytkownik willliu1995 . Było to dla mnie najszybsze rozwiązanie, które nie wymaga instalacji dodatkowych komponentów.

Motyl
źródło
4

Próbowałem WIELU sposobów rozwiązania tego problemu i żaden nie został rozwiązany. Obecnie korzystam z systemu Windows 10.

Jedyne, co zadziałało, to:

  • Odinstaluj Anaconda
  • Odinstaluj Python (używałem wersji 3.7.3)
  • Zainstaluj ponownie Pythona (pamiętaj, aby zaznaczyć opcję automatycznego dodawania do PATH)

Następnie pobrałem wszystkie potrzebne biblioteki za pomocą PIP ... i działałem!

Nie wiem dlaczego lub czy problem był w jakiś sposób związany z Anacondą.

João Ignacio
źródło
3

dla użytkowników piwa osx

mój problem pojawił się w związku z instalacją języka Python i został szybko rozwiązany przez ponowne zainstalowanie programów Python3 i pip. Myślę, że zaczęło się źle zachowywać po aktualizacji systemu operacyjnego, ale kto wie (w tej chwili korzystam z systemu 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
źródło
Dziękuję za tę odpowiedź! W moim przypadku problemy zaczęły się po aktualizacji do Cataliny (10.15.3) i stwierdziłem, że pierwszy krok brew reinstall python3 --forcebył wystarczający: pippo tym działał ponownie, nie musiałem ponownie instalować pip.
PLL
3

Możesz zrobić jedną z tych dwóch opcji:

  1. Podczas instalacji Anacondy wybierz opcję dodania Anacondy do ścieżki .

lub

  1. Znajdź te (pełne) ścieżki w folderze instalacyjnym Anacondy i dodaj je do zmiennej środowiskowej :

\Anakonda

\ Anaconda \ Library \ mingw-w64 \ bin

\ Anaconda \ Library \ usr \ bin

\ Anaconda \ Library \ bin

\ Anaconda \ Scripts

\ anaconda \ Library

\ anaconda \ condabin

Dodaj powyższe ścieżki do zmiennej systemowej "Ścieżka" i nie powinna już pokazywać błędu :)

aymusbond
źródło
1
Jedną z alternatyw jest użycie specjalnego „zachęty anaconda”, w którym te zmienne środowiskowe są poprawnie skonfigurowane.
Tuula
2

Miałem ten sam problem i udało mi się go rozwiązać, wykonując następujące czynności:

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

w zależności od pozwoleń, możesz nie potrzebować sudo.

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

powinien być teraz w stanie uruchomić

python3.7 -V 

i

pip3.7 -V

Podczas instalowania pakietów:

pip3.7 install pandas

lub w zależności od pozwoleń, możesz również dodać flagę --user w następujący sposób:

pip3.7 install pandas --user
RubenD
źródło
2

sslModuł jest opakowaniem TLS / SSL dostępu Operation Sytem (OS) gniazdo ( Lib / ssl.py ). Więc gdy sslmoduł nie jest dostępny, istnieje prawdopodobieństwo, że albo nie masz zainstalowanych bibliotek OS OpenSSL, albo te biblioteki nie zostały znalezione podczas instalacji Pythona. Załóżmy, że jest to późniejszy przypadek (aka: masz już zainstalowany OpenSSL, ale nie są one poprawnie połączone podczas instalacji Pythona).

Zakładam również, że instalujesz ze źródła. Jeśli instalujesz z pliku binarnego (np. Pliku .exe okna) lub pakietu (Mac .dmg lub Ubuntu apt), niewiele możesz zrobić z procesem instalacji.

Na etapie konfigurowania instalacji Pythona musisz określić, gdzie OpenSSL systemu operacyjnego będzie używany do łączenia:

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

Więc gdzie znajdziesz swój zainstalowany katalog OpenSSL?

# 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

Twój system może być inny niż mój, ale jak widzisz, mam wiele różnych zainstalowanych bibliotek openssl. W chwili pisania tego tekstu python 3.8 oczekuje openssl 1.0.2 lub 1.1:

Python wymaga biblioteki libssl zgodnej z OpenSSL 1.0.2 lub 1.1 z X509_VERIFY_PARAM_set1_host ().

Musiałbyś więc sprawdzić, których z tych zainstalowanych bibliotek możesz użyć na przykład do łączenia

/usr/bin/openssl version

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

Być może będziesz musiał wypróbować kilka lub zainstalować nową, aby znaleźć bibliotekę, która będzie działać dla twojego Pythona i twojego systemu operacyjnego.

bizi
źródło
1

W moim przypadku z komputerem Mac usunąłem /Applications/Python 3.7. ponieważ miałem już Python3.7 wgbrew install python3 .

Ale to był początek przesłania

pip jest skonfigurowany z lokalizacjami, które wymagają TLS / SSL, jednak moduł ssl w Pythonie nie jest dostępny.

Co zrobiłem w mojej sytuacji

  1. Pobrałem MacOS 64-bitowy instalator ponownie i zainstalowany.
  2. Kliknij dwukrotnie /Applications/Python3.6/Install Certificates.commandi /Applications/Python3.6/Update Shell Profile.command.
  3. Uruchom ponownie mac
  4. I nie jestem pewien, ale prawdopodobnie przyczynił się do sukcesu pip.conf. Zobacz, że instalacja pip kończy się niepowodzeniem .
araya
źródło
1

Wreszcie rozwiązuję ten problem. Oto szczegóły mojego env:
Wersja Pythona do zainstalowania: 3.6.8
System operacyjny: Ubuntu 16.04.6 LTS
Dostęp do roota: Nie

Niektórzy sugerują instalację libssl-dev, ale dla mnie to nie zadziałało. Podążam za tym linkiem i naprawiłem to!
Krótko mówiąc, pobieram, rozpakowuję, buduję i instaluję OpenSSL (openssl-1.1.1b.tar.gz). Następnie modyfikuję .bashrcplik pod tym linkiem .
Następnie pobieram i rozpakowuję Python-3.6.8.tgz. Edytuję Modules / Setup.dist, aby zmodyfikować ścieżkę SSL (linie wokół # 211). Zrobiłem ./configure --prefix=$HOME/opt/python-3.6.8, makei make install. Na koniec zmodyfikowałem plik .bashrc. Zauważ, że nie uwzględniam --enable-optimizationsw ./configure.

donto
źródło
0

W systemie MacOS skonfigurowanie Pythona 3.8.1 za pomocą poniższego polecenia rozwiąże problem, myślę, że działałoby również w systemie Linux.

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

zmień parametr dir w zależności od systemu.

user3857893
źródło
0

Jeśli korzystasz z OSX i na wypadek, gdyby inne rozwiązania nie działały dla Ciebie (tak jak ja).

Możesz spróbować odinstalować Python3 i zaktualizować pip3

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

To zadziałało dla mnie;)

inishchith
źródło
0

(NIE w systemie Windows!)

To sprawiło, że wyrywałem sobie włosy na tydzień, więc mam nadzieję, że to komuś pomoże

Próbowałem wszystkiego oprócz ponownej instalacji Anacondy i / lub Jupytera.

Ustawiać

  • AWS Linux
  • Ręcznie zainstalowany Anaconda 3-5.3.0
  • Python3 (3.7) działał wewnątrz anakondy (tj. ./anaconda3/bin/python )
  • był też /usr/bin/pythoni /usr/bin/python3(ale te nie były używane, ponieważ większość pracy była wykonywana w terminalu Jupytera)

Naprawić

W terminalu Jupyter:

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

Co to spowodowało?

Więc to wszystko działało, dopóki nie spróbowałem zrobić conda install conda-forge

Nie jestem pewien, co się stało, ale conda musiała zostać zaktualizowana openssl się na pudełku (zgaduję), więc po tym wszystko się zepsuło.

Zasadniczo, nieznane mi, conda zaktualizowała openssl, ale w jakiś sposób usunęła stare biblioteki i zastąpiła je libssl.so.1.1ilibcrypto.so.1.1 .

Wydaje mi się, że Python3 został skompilowany w celu wyszukania libssl.so.1.0.0

Ostatecznie kluczem do diagnozy było:

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

dał wskazówkę library "libssl.so.1.0.0" not found

Ogromnym założeniem, które zrobiłem, jest to, że yumwersja ssl jest taka sama jakconda wersja, więc samo zmiana nazwy udostępnionego obiektu może zadziałać i tak się stało.

Moim innym rozwiązaniem była ponowna kompilacja Pythona, ponowna instalacja anakondy itp., Ale w końcu cieszę się, że nie musiałem.

Mam nadzieję, że to wam pomoże.

Snowy Oz
źródło
0

W przypadku używania pyenvdo zarządzania instalacjami Pythona w systemie Mac OS Catalina, musiałem opensslnajpierw zainstalować za pomocą brew, a następnie po tym uruchomieniu, pyenv install 3.7.8który wydawał się budować instalację Pythona przy użyciu opensslfrom homebrew (tak nawet powiedział w wyjściu instalacji). Potem pyenv global 3.7.8i mnie nie było.

ProperBritish
źródło
0

Udało mi się to naprawić, aktualizując wersję Pythona w tym pliku. pyenv: wersja `3.6.5 'nie jest zainstalowana (ustawiana przez /Users/taruntarun/.python-version) Mimo że mam zainstalowaną najnowszą wersję, moje polecenie nadal używa starej wersji 3.6.5

Przechodzenie do wersji 3.7.3

Tarun Singh
źródło
-1

Miałem ten sam problem przez ostatnie dwa dni i rozwiązałem go dopiero teraz.

Próbowałem użyć --trust-hostopcji z DigiCert_High_Assurance_EV_Root_CA.pemnie działała, nie mogłem zainstalować modułu ssl (mówi, że nie można go zainstalować dla wersji Pythona większych niż 2.6), ustawienie $PIP_CERTzmiennej też tego nie naprawiło, a miałem libssl1.0.2i libssl1.0.0zainstalowałem. Warto również wspomnieć, że nie miałem ~/.pip/pip.confpliku, a utworzenie go również nie rozwiązało błędu.

Tym, co ostatecznie go rozwiązało, była makeponowna instalacja pythona3.6 z . Pobierz Python 3.6.0.tgz ze strony internetowej, należy uruchomić configurewtedy make, make testi make install. Mam nadzieję, że to działa dla Ciebie.

EC Lobo
źródło
2
Przepraszamy, ale musiałem zagłosować przeciw, ponieważ po prostu stwierdziłem, że powtórzę te same kroki, które spowodowały ten błąd. Nie wiem, jak można by oczekiwać, że uruchomisz te same polecenia na tym samym źródle Pythona i uzyskasz różne wyniki!
Jamie Lindsey
-1

Dokumentacja Pythona jest w rzeczywistości bardzo przejrzysta i postępowanie zgodnie z instrukcjami wykonało zadanie, podczas gdy inne odpowiedzi, które tutaj znalazłem, nie rozwiązały tego problemu.

  1. najpierw zainstaluj python 3.xx ze źródła za pomocą, na przykład z wersją 3.6.2 https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz

  2. upewnij się, że masz zainstalowany openssl, uruchamiając brew install openssl

  3. rozpakuj go i przejdź do katalogu Pythona: tar xvzf Python-3.6.2.tar.xz && cd Python-3.6.2

  4. wtedy jeśli wersja Pythona to <3.7, uruchom

CPPFLAGS="-I$(brew --prefix openssl)/include" \ LDFLAGS="-L$(brew --prefix openssl)/lib" \ ./configure --with-pydebug 5. na koniec uruchom make -s -j2( -sjest cichą flagą, -j2mówi twojej maszynie, aby użyła 2 zadań)

pglaser
źródło
j to mnemonik określający „zadania”, czyli liczbę procesów uruchomionych równolegle podczas kompilacji. Jeśli chodzi o flagę s, nadal wyświetla ostrzeżenia, ale bez dodatkowego szumu poziomów informacji / debugowania. Te flagi są używane w instrukcjach Pythona Docs.
pglaser,
-1

Miałem ten sam problem, próbując zainstalować python3.7 na komputerze ubuntu14.04. Problem polegał na tym, że miałem kilka niestandardowych folderów w moim PKG_CONFIG_PATH i mojej LD_LIBRARY_PATH, co uniemożliwiło procesowi kompilacji Pythona znalezienie systemowych bibliotek openssl.

więc spróbuj je wyczyścić i zobacz, co się stanie:

export PKG_CONFIG_PATH=""
export LD_LIBRARY_PATH=""
Loki
źródło
2
To faktycznie zrujnowałoby komuś dzień, gdyby miał przydatne rzeczy w tych zmiennych środowiskowych
matanster
-1

Ok, ostatnia odpowiedź na to pytanie, na razie nie używaj Pythona 3.8 , używaj tylko 3.7 lub mniej, ponieważ większość bibliotek nie instaluje się z powyższym błędem

Ujju
źródło
O ile wiem, Python używa podstawowych pakietów systemu operacyjnego. Rzeczy takie jak gcc, openssli zlib. Dlatego ważne jest, aby zainstalować te wymagania wstępne przed kompilacją Pythona, zwłaszcza gdy jest używany w systemie Linux.
stephen
@ surfer190 Używam okien, ale to, co powiedziałeś, może być prawdą dla obu
Ujju