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>
?
sudo apt-get install python3-pip
?pip3 install --upgrade pip
i sprawdź, czy otrzymujesz tę samą wiadomość, czy nie.Odpowiedzi:
Przewodnik krok po kroku dotyczący instalacji Pythona 3.6 i pip3 w Ubuntu
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
Pobierz i rozpakuj „Python-3.6.8.tar.xz” z https://www.python.org/ftp/python/ do swojego katalogu domowego.
Otwórz terminal w tym katalogu i uruchom:
$ ./configure
Zbuduj i zainstaluj:
$ sudo make && sudo make install
Zainstaluj pakiety za pomocą:
$ pip3 install package_name
źródło
Jeśli korzystasz z Red Hat / CentOS:
źródło
openssl-devel
go uruchomićpython2.7 get-pip.py
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.
źródło
Miałem podobny problem na OSX 10.11 z powodu zainstalowania memcached, który zainstalował Pythona 3.7 nad 3.6.
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ę:
Nie widziałem tej sugestii nigdzie w Internecie. Mam nadzieję, że to komuś służy.
źródło
brew switch openssl 1.0.2s
. Ale to było to. Uratowałeś mnie, dzięki!openssl
działało:brew switch openssl 1.0.2t
Jestem na Mac OS Catalina 10.15.3. Mam nadzieję, że to pomoże.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:
brew uninstall openssl; brew install openssl
Zgodnie ze wskazówkami udzielonymi przez Homebrew wykonaj następujące czynności:
źródło
brew uninstall openssl, brew install openssl
. Próbowałem,brew reinstall openssl
ale bez skutku. Ale odinstalowanie / instalacja działa!brew uninstall --ignore-dependencies openssl
W Ubuntu może to pomóc:
źródło
Obniżenie poziomu openssl zadziałało dla mnie,
źródło
Problem prawdopodobnie spowodowany brakiem biblioteki.
Zanim zainstalujesz Pythona 3.6, upewnij się, że zainstalowałeś wszystkie biblioteki wymagane dla Pythona.
Więcej informacji w Jak zainstalować Python 3.6.0 na Ubuntu i LinuxMint
źródło
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
CPPFLAGS
iLDFLAGS
. 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:Zakładając, że biblioteka jest zainstalowana w tej lokalizacji.
źródło
openssl
działało:brew switch openssl 1.0.2t
Jestem na Mac OS Catalina 10.15.3. Mam nadzieję, że to pomoże.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ę plikpython.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łędziepip 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ę znajduje3)
import ssl
iexit()
4) wpisz
"Python 3.7 (64-bit).lnk" -m pip install tensorflow
np. Cmd .Masz wszystko gotowe.
źródło
cmd /c $py .\main.py
( Powershell ) lubcmd /c %py% .\main.py
( Dos ). Spowoduje to uruchomienie go w istniejącej powłoce i można go uruchomić za pomocą skryptuJeś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.
źródło
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:
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ą.
źródło
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)
źródło
brew reinstall python3 --force
był wystarczający:pip
po tym działał ponownie, nie musiałem ponownie instalowaćpip
.Możesz zrobić jedną z tych dwóch opcji:
lub
\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 :)
źródło
Miałem ten sam problem i udało mi się go rozwiązać, wykonując następujące czynności:
w zależności od pozwoleń, możesz nie potrzebować sudo.
powinien być teraz w stanie uruchomić
i
Podczas instalowania pakietów:
lub w zależności od pozwoleń, możesz również dodać flagę --user w następujący sposób:
źródło
ssl
Moduł jest opakowaniem TLS / SSL dostępu Operation Sytem (OS) gniazdo ( Lib / ssl.py ). Więc gdyssl
moduł 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:
Więc gdzie znajdziesz swój zainstalowany katalog OpenSSL?
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:
Musiałbyś więc sprawdzić, których z tych zainstalowanych bibliotek możesz użyć na przykład do łączenia
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.
źródło
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
Co zrobiłem w mojej sytuacji
/Applications/Python3.6/Install Certificates.command
i/Applications/Python3.6/Update Shell Profile.command
.pip.conf
. Zobacz, że instalacja pip kończy się niepowodzeniem .źródło
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ę
.bashrc
plik 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
,make
imake install
. Na koniec zmodyfikowałem plik.bashrc
. Zauważ, że nie uwzględniam--enable-optimizations
w./configure
.źródło
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.
zmień parametr dir w zależności od systemu.
źródło
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
To zadziałało dla mnie;)
źródło
(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ć
./anaconda3/bin/python
)/usr/bin/python
i/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.1
ilibcrypto.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
yum
wersja 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.
źródło
W przypadku używania
pyenv
do zarządzania instalacjami Pythona w systemie Mac OS Catalina, musiałemopenssl
najpierw zainstalować za pomocą brew, a następnie po tym uruchomieniu,pyenv install 3.7.8
który wydawał się budować instalację Pythona przy użyciuopenssl
from homebrew (tak nawet powiedział w wyjściu instalacji). Potempyenv global 3.7.8
i mnie nie było.źródło
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
źródło
Miałem ten sam problem przez ostatnie dwa dni i rozwiązałem go dopiero teraz.
Próbowałem użyć
--trust-host
opcji zDigiCert_High_Assurance_EV_Root_CA.pem
nie 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_CERT
zmiennej też tego nie naprawiło, a miałemlibssl1.0.2
ilibssl1.0.0
zainstalowałem. Warto również wspomnieć, że nie miałem~/.pip/pip.conf
pliku, a utworzenie go również nie rozwiązało błędu.Tym, co ostatecznie go rozwiązało, była
make
ponowna instalacja pythona3.6 z . Pobierz Python 3.6.0.tgz ze strony internetowej, należy uruchomićconfigure
wtedymake
,make test
imake install
. Mam nadzieję, że to działa dla Ciebie.źródło
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.
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
upewnij się, że masz zainstalowany openssl, uruchamiając
brew install openssl
rozpakuj go i przejdź do katalogu Pythona:
tar xvzf Python-3.6.2.tar.xz && cd Python-3.6.2
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 uruchommake -s -j2
(-s
jest cichą flagą,-j2
mówi twojej maszynie, aby użyła 2 zadań)źródło
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:
źródło
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
źródło
gcc
,openssl
izlib
. Dlatego ważne jest, aby zainstalować te wymagania wstępne przed kompilacją Pythona, zwłaszcza gdy jest używany w systemie Linux.