Próbuję zainstalować bibliotekę Pythona przy użyciu pip
, pojawia się błąd SSL:
~/projects/base pre-master± pip install xdict
Collecting xdict
Could not fetch URL https://pypi.python.org/simple/xdict/: There was a problem confirming the ssl certificate: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:590) - skipping
Could not find a version that satisfies the requirement xdict (from versions: )
No matching distribution found for xdict
wersja pip: pip 9.0.1
Jak naprawić ten błąd?
python
python-2.7
pip
ssl-certificate
Nishant Nawarkhede
źródło
źródło
Odpowiedzi:
Uaktualnij pip w następujący sposób:
Uwaga: może być konieczne użycie
sudo python
powyższego, jeśli nie w środowisku wirtualnym.(Pamiętaj, że aktualizacja
pip
przy użyciupip
iepip install --upgrade pip
również nie spowoduje jej poprawnej aktualizacji. Jest to tylko problem z kury i jaja.pip
Nie będzie działać, chyba że używasz TLS> = 1.2).Jak wspomniano w tej szczegółowej odpowiedzi , jest to spowodowane niedawnym wycofaniem protokołu TLS dla pip. Witryny Python.org przestały obsługiwać TLS w wersjach 1.0 i 1.1.
Ze strony statusu Pythona:
Dla użytkowników PyCharm (virtualenv):
Uruchom środowisko wirtualne z powłoką. (zamień „./venv/bin/activate” na swoją własną ścieżkę)
Uruchom aktualizację
Zrestartuj swoją instancję PyCharm i sprawdź swój interpreter Pythona w Preference .
źródło
sudo
na początku z powodu błędów odmowy pozwolenia. Dzięki!curl https://bootstrap.pypa.io/get-pip.py | sudo python
sudo
jeśli nie w środowisku wirtualnym. Dodałem to również w odpowiedzi teraz.curl https://bootstrap.pypa.io/get-pip.py | sudo -H python3
Ale jeśli
curl
samo polecenie zakończy się błędem lub „wersja protokołu alertu tlsv1” będzie się powtarzać nawet po aktualizacjipip
, oznacza to, że wersja biblioteki OpenSSL Twojego systemu operacyjnego <1.0.1
lub wersja Pythona <2.7.9
(lub <3.4
w Pythonie 3) nie obsługuje nowszego protokołu TLS 1.2 którypip
musi łączyć się z PyPI od około roku temu . Możesz to łatwo sprawdzić w interpreterze Pythona:Znak
AttributeError
(zamiast oczekiwanego „5”) oznacza, żessl
moduł Pythona stdlib , skompilowany ze starą biblioteką openssl, nie obsługuje protokołu TLSv1.2 (nawet jeśli biblioteka openssl może lub może zostać zaktualizowana później).Na szczęście można to rozwiązać bez aktualizacji Pythona (i całego systemu), ręcznie instalując dodatkowe pakiety Pythona - szczegółowy przewodnik krok po kroku jest dostępny tutaj na Stackoverflow .
źródło
pip3
, nie tylkopip
- sprawdzić wersję za pomocą polecenia,-V
aby upewnić się, że używasz właściwego pip !!Podążanie za odpowiedzią @ Anupam na OS X spowodowało następujący błąd, niezależnie od uprawnień, z którymi go uruchomiłem:
Ostatecznie udało się pobrać nowszy pakiet pip (9.0.3) z PyPI bezpośrednio z mojej przeglądarki - https://pypi.org/simple/pip/ , rozpakować zawartość, a następnie zainstalować pakiet lokalnie za pomocą pip:
To naprawiło moje
[SSL: TLSV1_ALERT_PROTOCOL_VERSION]
błędy.źródło
Rozwiązanie @Anupam zadziałało dla mnie. Musiałem jednak użyć
sudo
i określić dokładną lokalizację mojego wirtualnego środowiska Pythona:źródło
Aby zaktualizować lokalną wersję, użyłem niewielkiego wariantu:
Ten problem pojawia się, jeśli przechowujesz pip i pakiety w swoim katalogu domowym, jak opisano w tym skrócie .
źródło
U mnie zadziałało następujące rozwiązanie:
Uaktualniono również
pip
do wersji 1.10.1źródło
Sprawdź swoją wersję TLS:
Jeśli Twoja wersja TLS jest niższa niż 1.2, musisz ją zaktualizować, ponieważ repozytorium PyPI znajduje się w okresie wycofywania wczesnej wersji TLS.
Źródło - czas na aktualizację Pythona: protokół TLS v1.2 wkrótce będzie obowiązkowy
Możesz zaktualizować wersję TLS za pomocą następującego polecenia:
To powinno rozwiązać twój problem. Powodzenia!
EDYCJA: Możesz pobierać pakiety przy użyciu własnego prywatnego repozytorium pakietów Pythona niezależnie od wersji TLS. Prywatne repozytorium pakietów Pythona
źródło
To zadziałało dla mnie. Dodaj sudo przed pythonem
źródło
Użytkownicy Python2 WIN10:
1.Dokładnie odinstaluj Pythona, dołącz wszystkie foldery.
2. Pobierz i zainstaluj najnowszą wersję python-2.7.msi (wersja 2.7.15)
3. Po kroku 2 może się okazać, że pip został również zainstalowany.
4. Teraz, jeśli twój system'env nie został zmieniony, możesz teraz zainstalować pakiety za pomocą pip. „Wersja protokołu alertu tlsv1” nie pojawi się.
źródło
Wypróbowałem wszystkie istniejące poprawki i nie działały dla mnie
Ponownie instaluję Pythona 2.7 (zainstaluję również pip), pobierając plik .pkg ze strony https://www.python.org/downloads/mac-osx/
działa u mnie po instalacji pobranego pkg
źródło
Ja też napotkałem ten problem. Podstawowy problem polega na tym, że biblioteka ssl w Pythonie 2.7 w wersjach <2.7.9 nie jest już zgodna z mechanizmem pip.
Jeśli pracujesz w systemie Windows i (tak jak my) nie możesz łatwo zaktualizować niekompatybilnej wersji 2.7, FWIW, stwierdziłem, że jeśli skopiujesz następujące pliki z innej instalacji najnowszej wersji Pythona (np.Python 2.7. 15) na innym komputerze do swojej instalacji:
skutecznie "zaktualizuje" twoją warstwę SSL do takiej, która jest obsługiwana; mogliśmy wtedy ponownie użyć pip, nawet do aktualizacji pip.
źródło
To zadziałało dla mnie, zainstalowałem najnowszą wersję pip, a następnie zainstalowałem bibliotekę ( ciscoconfparse ).
Aktualizacja pip:
źródło
myenv:
python 2.7.14
pip 9.0.1
mac osx 10.9.4
rozwiązanie:
pobierz
get-pip.py
ręcznie z https://packaging.python.org/tutorials/installing-packages/biegać
python get-pip.py
referencje:
https://github.com/pypa/warehouse/issues/3293#issuecomment-378468534
https://packaging.python.org/tutorials/installing-packages/
źródło
Trafiłem również na ten problem na moim windows10 i wypróbowałem wszystkie odpowiedzi, ale nie rozwiązałem mojego problemu.
Po tym stwierdziłem, że plik konfiguracyjny pip został zmodyfikowany. Więc ustawiłem
pip.ini
jako oryginalną domyślną konfigurację, ponownie uruchom polecenie pip i działa dla mnie!Podsumowując moje rozwiązanie:
Sprawdź, czy pip.ini (zwykle pod ścieżką
C:\ProgramData\pip
) został zmodyfikowany;Jeśli tak w kroku 1, spróbuj zresetować go do konfiguracji domyślnej.
źródło
Lub po prostu wymaganej biblioteki po prostu nie ma w repozytorium. Jestem nowicjuszem w Pythonie i wszystkie porady dotyczące aktualizacji pip zostały ostatecznie pokazane jako mylące. Musiałem tylko zajrzeć do https://pypi.org/ , stwierdzając, że biblioteka (przepływ powietrza w moim przypadku) zatrzymała się na jakiejś starej wersji, po czym została zmieniona. Tak, możliwe jest też to głupie rozwiązanie :-).
źródło
Dla wszystkich użytkowników
python3
ipip3
:a następnie załóżmy, że chcesz zainstalować pandy
źródło
Odpowiedzi dotyczące instalacji pip przez:
curl https://bootstrap.pypa.io/get-pip.py |sudo python
lubcurl https://bootstrap.pypa.io/get-pip.py | python
nie zadziałało, ponieważ ciągle otrzymywałem błąd:
Musiałem zainstalować
pip
ręcznie przez:pip
dystrybucjitar.gz
wersjęcd
do katalogupython setup.py install
źródło