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

213

Korzystam z Python3.6, kiedy próbuję zainstalować „moduły” przy użyciu pip3, mam do czynienia z wymienionym poniżej problemem „pip jest skonfigurowany z lokalizacjami, które wymagają TLS / SSL, jednak moduł ssl w Pythonie nie jest dostępny”

Santosh Kumar G.
źródło
1
system operacyjny?
ZiTAL
1
jeśli to jest os x: stackoverflow.com/questions/35280956/…
ZiTAL
1
System operacyjny to Oracle Linux 7.x
Santosh Kumar G
1
Czy zainstalowałeś pip z menedżera pakietów? Jeśli zainstalowałeś kompilację, najpierw zainstaluj libssl-devlub zainstaluj ssl ze strony pip pip install ssl stackoverflow.com/questions/41098252/...
ZiTAL
37
@ZiTAL pipnie działa, ssla ty prosisz o instalację sslz pipem :)
Ramazan Polat

Odpowiedzi:

190

W systemie Windows 10, jeśli chcesz używać pipa w normalnym cmd, nie tylko w wierszu polecenia Anaconda. musisz dodać 3 ścieżki środowiska. jak następujące:

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

większość ludzi dodaje tylko D: \ Anaconda3 \ Scripts;

无名 小路
źródło
1
Dzięki, dodałem D: \ Anaconda3 \ Library \ bin i działa, tak przy okazji libssl-1_1-x64.dll znajduje się w tym folderze. (win10x64, python 3.7)
apet
kiedy dodasz te trzy na swojej ścieżce, zamknij cmd i wróć do niego, a następnie spróbuj ponownie.
user3568896,
Co rozumiesz przez ścieżki środowiska? masz na myśli zmienną środowiskową PATH? plus nie mam tych folderów na moim dysku D, czy powinny być tworzone podczas instalacji Anacondy?
Amit Raz,
A także dla systemu Windows 8.1
Antoine
1
To NIE działa, jeśli nie używasz Anacondy. Wystąpił ten problem z instalacjami OSGeo4W64 i QGIS 3.10.2. Dodanie tego, co zbieram, jest poprawnymi ścieżkami do zmiennej PATH, nie rozwiązuje problemu (np .:) C:\Program Files\QGIS 3.10\apps\Python37\Scripts.
CNIDog
184

SYSTEM OPERACYJNY MAC

Miałem ten sam problem w systemie Mac OS (Mojave) i rozwiązałem problem, jak wspomniano w tym linku - problem z OpenSL .

  1. Jeśli nie masz Homebrew lub nie wiesz, co to jest Homebrew:

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

  2. Lub jeśli masz już zainstalowany Homebrew:

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

Aktualizacja: Należy pamiętać, że musiałem użyć --ignore-dependenciesflagi, ponieważ inne zainstalowane pakiety zależą od OpenSSL.

Dodatkowo, jeśli problem występuje po użyciu pyenv , możesz go naprawić, używając:

brew reinstall python
Vaulstein
źródło
5
Po zainstalowaniu innej Python wersji pip został uszkodzony. to rozwiązanie pomogło mi naprawić.
iMitwe,
15
dlaczego github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb jest również dodawany jako zależność? :) Myślę, że należy go usunąć, ponieważ jest całkowicie niezwiązany i potencjalnie niepewny
Mark
1
Rozumiem, że może to stanowić zagrożenie bezpieczeństwa, ale wszyscy użytkownicy poprosili o użycie pakietu za pośrednictwem oficjalnego łącza do pakietu - github.com/kelaberetiv/TagUI/issues/635
Vaulstein
1
@Vaulstein Teraz, kiedy o tym wspominasz. Wydaje mi się, że zainstalowałem kilka pakietów za pomocą brew, zanim to się zepsuło. Tak było gpg.
uzależniony
3
Po aktualizacji z Mojavedo Catalina, trafiłem w to. Potrzebowałem tylko brew update && brew upgrade, żeby znów zadziałało. Dzięki za radę!
rustyMagnet
35

W przypadku użytkowników Debiana mogą być przydatne:

sudo -s

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

Następnie przejdź do folderu zawierającego kod źródłowy biblioteki Python 3.X i uruchom:

./configure
make
make install
Rafael B.
źródło
@ MehmetKurtipek, zredagowałem odpowiedź, aby wyjaśnić krok. Jeśli to nadal nie pomoże, wyjaśnij swój problem
Rafael B
5
okazało się, że Python3.7 ma fajne problemy z Ubuntu 14.04 i starszymi. Minimalny wymagany pakiet SSL dla Python3.7 nie jest kompatybilny ze starym Ubuntus. Dzięki za edycję :)
Mehmet Kurtipek
@MehmetKurtipek Mój serwer to 1404. Więc jaka jest najnowsza wersja Pythona, która nie ma tego problemu. Mam w Pythonie 3.7.4 ten sam problem ...
oferta nie może odmówić
@MehmetKurtipek Czy rozwiązałeś problem bez aktualizacji systemu? Pracuję również nad 14.04
oferta nie może odmówić
używając mint19 i Pythona 3.8, to naprawiło mój problem
5
21

Dla przyszłych użytkowników Oracle Linux, którzy próbują rozwiązać ten problem, poniżej działało to dla mnie. Najpierw zainstaluj brakujące biblioteki:

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

Następnie przejdź do biblioteki Python3.X i uruchom:

make
make install 
limboy
źródło
1
Ta odpowiedź dobrze rozwiązała problem na moim CentOS 7.
Maks.
Co to za biblioteki? Dlaczego są wymagane?
Mohit Motwani,
Wykonanie bezpiecznego połączenia przez Internet wymaga tego - na przykład po uruchomieniu „pip install”
limboy
@MohitMotwani - fuhgeddaboudit ... urbandictionary.com/define.php?term=fuhgeddaboudit
barrypicker
20

Dla centos 7:

Zainstaluj openssl:

sudo yum install openssl-devel

teraz mam katalog pytona, gdzie wyodrębniliśmy tar pytona,

uruchom poniżej poleceń

sudo ./configure
sudo make
sudo make install

To rozwiąże problem w centos ...

PDHide
źródło
10

W systemie Windows 10, Windows 7 Jeśli instalacja pip nie działa na monit CMD, uruchom go za pomocą monitu Anaconda - działa.

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

Tokci
źródło
6
Znam właściwą odpowiedź, jeśli chcesz używać pipa w normalnym cmd, a nie w wierszu Anacondy, musisz dodać 3 ścieżki środowiska: jak te: D: \ Anaconda3; D: \ Anaconda3 \ Scripts; D: \ Anaconda3 \ Library \ bin teraz tylko Skrypty!
27 小路
7

Jeśli twój python jest pyenvzainstalowany, a pyenv jest instalowany z homebrew na macOS, może mi być dostępna nowsza wersja, która to naprawia:

$ brew update && brew upgrade pyenv

Następnie ponowna instalacja wersji Pythona:

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

Uwaga: zastąpienie istniejącej instalacji Pythona jest trochę brudne, ale w moim przypadku się udało.

luckydonald
źródło
5

Dla OpenSUSE w ten sam sposób, ale z kilkoma zmianami wymienionych powyżej pakietów:

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

Następnie cddo źródeł Python reż i

make
make install

lub

make
make altinstall

I może

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

należy wykonać dla użytkowników OpenSUSE. Zobacz Instalacja Python 3.7 nie działa na openSUSE Leap 42.3

Evgeny
źródło
4

Spróbuj zainstalować za pomocą monitu Anaconda

Nishant Wattamwar
źródło
4

Pracował dla mnie.

apt-get install libssl-dev

Użyj tego, aby włączyć ssl dla pip. Daj mi znać, jeśli ktoś napotka problemy.

naman1994
źródło
4

Podobne do powyższego rozwiązania zainstaluj ponownie wersję Pythona za pomocą pyenv.

W jakiś sposób zaktualizowałem mój, opensslktóry złamał Pythona w wersji Pyenv.

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

Pierwsza linia mówi, że opiera się na homebrew openssl.

Izana
źródło
3

Natknąłem się na ten problem z instalacją pylinta Visual Studio Code z monitu VS Code. Udało mi się rozwiązać ten problem, otwierając katalog instalacyjny Anaconda i uruchamiając go

pip install pylint

Potem kod VS był zadowolony, ale to nie rozwiązało problemu

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

prawie dał ten sam błąd, więc wydaje się, że VS Code nie może uzyskać dostępu do modułów Pythona.

Zauważ, że VS Code pobiera pierwsze env Pythona, które widzi po zainstalowaniu, w lewym dolnym rogu ekranu wskazuje, które env jest używane. Kliknięcie tego obszaru pozwala ustawić środowisko. Więc nawet jeśli uruchomiłeś instalację pip dla środowiska VS Code może patrzeć na inny.

Najlepszym rozwiązaniem było upewnienie się, że w kodzie VS wybrano prawidłowe środowisko Pythona i że to samo środowisko znajduje się w ŚCIEŻCE systemu (w obszarze Właściwości systemu -> Zaawansowane -> Zmienne środowiskowe)

W obszarze Zmienna ścieżki, Edytuj i przejdź do konkretnego katalogu Anaconda, którego chcesz użyć VSCode i dodaj do PATH, musiałem dodać następujące:

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

Twój katalog instalacyjny Anaconda może się różnić. Jedna uwaga jest taka, że ​​Windows nie ma wpływu na zmienną PATH, dopóki nie zrestartujesz terminalu. W takim przypadku zamknij i ponownie uruchom kod VS. Jeśli używasz Terminala lub PS Shell, zamknij i ponownie otwórz i sprawdź Ścieżkę, aby upewnić się, że jest uwzględniona.

FastGTR
źródło
3

Korzystam z systemu Windows 10 i zainstalowałem Miniconda 3 z Python 3.7.

Rozwiązałem ten błąd, wykonując to https://github.com/conda/conda/issues/8273

W szczególności, skopiowane następujące pliki C:\Users\MyUser\Miniconda3\Library\bindo 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
źródło
2

Jeśli nie masz Chocolatey, zainstaluj ją - stąd: https://chocolatey.org/docs/installation

Możesz po prostu skopiować wklej jeden wiersz wiersza poleceń i wykonać go z wiersza polecenia z podwyższonymi uprawnieniami.

Zainstaluj anakondę, używając wiersza polecenia:

choco install anaconda3

Ustaw zmienne środowiskowe:

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

a następnie uruchom polecenie, które nie powiodło się. W moim przypadku było to:

pip install conan

Anakonda używa osobnej instalacji Pythona, a pip jest również specyficzny dla anakondy.

TarmoPikaro
źródło
1

Jak powiedział Tokci, działa również w systemie Windows 7.

„Idź myszką do ikony Windows (lewy dolny róg) i zacznij pisać„ Anaconda ”. Powinno pojawić się kilka pasujących wpisów. Wybierz„ Anaconda Prompt ”. Otworzy się nowe okno poleceń o nazwie„ Anaconda Prompt ”.”

Potem działa pip.

Pomagają również importować xgboost: https://www.youtube.com/watch?v=05djBSOs1FA

Ayan Omarov
źródło
Szukasz linuksowego odpowiednika ... ale w każdym razie, dlaczego to zadziała i użycie pip z linii poleceń nie zadziała? ma to sens tylko wtedy, gdy w pewnym momencie wcześniej przebudowałeś python anakondy za pomocą SSL.
matanster
Nie mam pojęcia, dlaczego, ale to, co mówisz, brzmi rozsądnie
Ayan Omarov,
1

Jeśli ktoś używa Arch Linux OS, rozwiązałem problem TLS / SSL, uruchamiając to:

sudo pacman -S openssl

Następnie mógłbym użyć pip do zainstalowania potrzebnego pakietu:

pip install openpyxl
Anny Gutierrez
źródło
1

Przejdź do monitu Anaconda i wpisz (jeśli masz silnik Python 3.x zainstalowany w silniku):

py -m pip install pymysql 

miałem ten sam problem i to rozwiązało mój problem. później po wykonaniu tej czynności możesz zaimportować pymysql w Power Shell lub w dowolnym innym wierszu poleceń.

Jay Chhatrala
źródło
1

Wystąpił ten problem podczas instalacji Pythona 3.8 ze źródła na Ubuntu. Kroki potrzebne do pomyślnej instalacji wraz z domyślnym pythonem 3.7 zostały podsumowane poniżej:

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

Instrukcja instalacji dla zlib1g-dev i build-essential jest redundantna, ponieważ na pulpicie ubuntu już je ma, ale była konieczna w niektórych instancjach Amazon EC2. Python 3.8.0 jest obecnie aktualną wersją, ale należy ją zastąpić najnowszą dostępną wersją.

Te instrukcje najlepiej nadają się do utrzymania domyślnego Pythona 3.7 dla Python3 i uruchamiania Pythona 3.8 w środowisku wirtualnym.

dmdip
źródło
1

Problem wynika z braku pakietu OpenSSL na komputerze.

Jeśli pip install openpyxl również daje błąd.

możesz to naprawić, instalując OpenSSL (Win64 OpenSSL v1.1.1g) z poniższej strony:

slproweb.com/products/Win32OpenSSL.html

Zrestartuj używane środowisko IDE, aby zmiany zostały wprowadzone.

Ashwani Singh
źródło
0

Wpadłem na ten problem! Przypadkowo zainstalowałem 32-bitową wersję Miniconda3. Wybierz wersję 64-bitową!

Mikrofon
źródło
0

To działało dla mnie:

yum install python36-pyOpenSSL 

wersja Pythona i menedżer pakietów mogą się różnić.

Andrysza
źródło
0

Próbowałem:

python -m pip install --upgrade pip

A potem działa dobrze dla mnie w systemie Windows 10.

Raj Kumar
źródło
0

Naprawiono to bez konieczności zmiany czegokolwiek związanego z TSL / SSL.

Próbowałem sprawdzić, czy to samo się dzieje pip, i zobaczyłem, że pipto się zepsuło. Zrobiłem trochę kopania i zdałem sobie sprawę, że to prawdopodobnie spowodowane przez Homebrew usunięte python@21 lutego 2020 roku.

Uruchamianie w brew uninstall python@2celu usunięcia python2 zainstalowanego przez Homebrew.

Zniszczono wirtualną env utworzoną za pomocą python3i utworzono nową.
pip3instalacja działa znowu dobrze.

Gary Bao Yutong 鲍昱 彤
źródło
3
Dla mnie przejście na starszą wersję openssldziałającego: brew switch openssl 1.0.2t Jestem na Mac OS Catalina 10.15.3. Mam nadzieję, że to pomoże.
viraj.kulkarni
0

W moim przypadku ponownie zainstalowałem phone. To rozwiązało problem.

brew reinstall python
użytkownik2446776
źródło
-1

To jest problem z domyślnym ustawieniem ssl. Musisz pobrać Python3 i dodać ścieżkę do swojego systemu. Jeśli używasz Pycharm, ustaw interpreter na ścieżkę python3. Następnie możesz normalnie używać pip3 bez błędu.

Traszka
źródło
-1

Problem prawdopodobnie wynika z zainstalowanej wersji pakietu openssl. Tak było w przypadku mnie i naprawiłem ten problem, po prostu go aktualizując. Jestem na Mac OS, używam naparu:

brew upgrade openssl

Jeśli zainstalowałeś Pythona z brew, powinno to bezpośrednio rozwiązać problem z nim, ponieważ Python jest zależny od openssl

claudod
źródło
-1

Spróbowałbyś od Anaconda Prompt.

Zobaczysz (podstawa), teraz zaktualizuj pip. Przykład:

(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

Zajmuje to więcej czasu, ale spowoduje także instalację lub aktualizację bibliotek SSL używanych wewnętrznie przez Anacondę. Kontynuuj tutaj

Gionthelawa
źródło
Ta odpowiedź zakłada używanie conda w systemie Windows, a nie waniliowego pythona w systemie Linux, jak wskazano OP
hrbdg