problem z pip instalacją prawie każdej biblioteki


101

Mam problem z użyciem pip do zainstalowania prawie wszystkiego. Jestem nowy w kodowaniu, więc pomyślałem, że może to jest coś, co robię źle i zrezygnowałem z easy_install, aby uzyskać większość tego, co potrzebowałem, co ogólnie działa. Jednak teraz próbuję pobrać bibliotekę nltk i żadna z nich nie jest wykonywana.

Próbowałem wejść

sudo pip install nltk

ale otrzymałem następującą odpowiedź:

/Library/Frameworks/Python.framework/Versions/2.7/bin/pip run on Sat May  4 00:15:38 2013
Downloading/unpacking nltk

  Getting page https://pypi.python.org/simple/nltk/
  Could not fetch URL [need more reputation to post link]: There was a problem confirming the ssl certificate: <urlopen error [Errno 1] _ssl.c:504: error:0D0890A1:asn1 encoding routines:ASN1_verify:unknown message digest algorithm>

  Will skip URL [need more reputation to post link]/simple/nltk/ when looking for download links for nltk

  Getting page [need more reputation to post link]/simple/
  Could not fetch URL https://pypi.python. org/simple/: There was a problem confirming the ssl certificate: <urlopen error [Errno 1] _ssl.c:504: error:0D0890A1:asn1 encoding routines:ASN1_verify:unknown message digest algorithm>

  Will skip URL [need more reputation to post link] when looking for download links for nltk

  Cannot fetch index base URL [need more reputation to post link]

  URLs to search for versions for nltk:
  * [need more reputation to post link]
  Getting page [need more reputation to post link]
  Could not fetch URL [need more reputation to post link]: There was a problem confirming the ssl certificate: <urlopen error [Errno 1] _ssl.c:504: error:0D0890A1:asn1 encoding routines:ASN1_verify:unknown message digest algorithm>

  Will skip URL [need more reputation to post link] when looking for download links for nltk

  Could not find any downloads that satisfy the requirement nltk

No distributions at all found for nltk

Exception information:
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.3.1-py2.7.egg/pip/basecommand.py", line 139, in main
    status = self.run(options, args)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.3.1-py2.7.egg/pip/commands/install.py", line 266, in run
    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.3.1-py2.7.egg/pip/req.py", line 1026, in prepare_files
    url = finder.find_requirement(req_to_install, upgrade=self.upgrade)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.3.1-py2.7.egg/pip/index.py", line 171, in find_requirement
    raise DistributionNotFound('No distributions at all found for %s' % req)
DistributionNotFound: No distributions at all found for nltk

--easy_install installed fragments of the library and the code ran into trouble very quickly upon trying to run it.

Jakieś przemyślenia na ten temat? Naprawdę byłbym wdzięczny za opinie na temat tego, jak mogę uruchomić pip lub coś, co w międzyczasie obejdzie problem.


2
Dla ludzi, którzy otrzymują ten błąd [SSL: TLSV1_ALERT_PROTOCOL_VERSION]dla wszystkich pip install, jest to spowodowane niedawnym wycofaniem TLS przez witryny Python.org. Zobacz tę odpowiedź
Anupam

Odpowiedzi:


136

Zauważyłem, że wystarczy określić hosta pypi jako zaufanego. Przykład:

pip install --trusted-host pypi.python.org pytest-xdist
pip install --trusted-host pypi.python.org --upgrade pip

To rozwiązało następujący błąd:

  Could not fetch URL https://pypi.python.org/simple/pytest-cov/: There was a problem confirming the ssl certificate: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:600) - skipping
  Could not find a version that satisfies the requirement pytest-cov (from versions: )
No matching distribution found for pytest-cov

Aktualizacja kwiecień 2018 : dla każdego, kto otrzyma błąd TLSV1_ALERT_PROTOCOL_VERSION: nie ma to nic wspólnego z problemem zaufanego hosta / weryfikacji OP lub tą odpowiedzią. Błąd TLSV1 polega raczej na tym, że Twój interpreter nie obsługuje protokołu TLS v1.2, musisz zaktualizować swój interpreter. Zobacz na przykład https://news.ycombinator.com/item?id=13539034 , http://pyfound.blogspot.ca/2017/01/time-to-upgrade-your-python-tls-v12.html i https : //bugs.python.org/issue17128 .

Aktualizacja luty 2019 : Niektórym może wystarczyć aktualizacja pip. Jeśli powyższy błąd uniemożliwia Ci to, użyj get-pip.py. Np. W systemie Linux,

curl https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py

Więcej szczegółów na https://pip.pypa.io/en/stable/installing/ .


4
U mnie to zadziałało, lata później, w systemie Windows
Allen Butler

23
Nadal pojawia się błądCould not fetch URL https://pypi.python.org/simple/pytest-xdist/: There was a problem confirming the ssl certificate: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:590) - skipping
Sankalp

3
Zaktualizowałem swoją odpowiedź, aby mówić o TLSV1, ponieważ jest to zupełnie odrębny problem.
Oliver

8
@peterpod zobacz tę odpowiedź: stackoverflow.com/a/49769015/1526703
Anupam


40

Użyłem wersji pip 9.0.1 i miałem ten sam problem, wszystkie powyższe odpowiedzi nie rozwiązały problemu i nie mogłem zainstalować pythona / pip z brew z innych powodów.

Aktualizacja pip w celu 9.0.3rozwiązania problemu. A ponieważ nie mogłem zaktualizować pip za pomocą pip, pobrałem źródło i zainstalowałem je ręcznie.

  1. Pobierz poprawną wersję pip z - https://pypi.org/simple/pip/
  2. sudo python3 pip-9.0.3.tar.gz - Zainstaluj pip

Lub możesz zainstalować nowszy pip za pomocą:

curl https://bootstrap.pypa.io/get-pip.py | python

jak wspomniałem w moim komentarzu do odpowiedzi @ apatsekin, dzieje się tak z powodu niedawnego wycofania TLS dla pip. Zobacz tę odpowiedź, aby uzyskać szczegółowe informacje.
Anupam

Dzięki .. może potwierdzić ten sam pracował również dla Pythona 2 (pracuję nad czymś spuścizny atm)
kardamon

Jeśli conda / anaconda jest powodem, dla którego nie możesz użyć brew lub pip do aktualizacji pip, możesz użyć conda install pipdo zainstalowania / uaktualnienia pip, którego używasz w swoim środowisku Conda. Powinieneś to zrobić w swoim głównym / podstawowym środowisku Conda, jeśli masz zainstalowaną Condę
płyty grzejne

1
Właśnie instaluję pipcurl https://bootstrap.pypa.io/get-pip.py | python
Sumeet Gohil

32

Pypi usunęło wsparcie dla wersji TLS mniejszych niż 1.2

Musisz ponownie zainstalować Pip, zrób

curl https://bootstrap.pypa.io/get-pip.py | python

lub dla globalnego Pythona:

curl https://bootstrap.pypa.io/get-pip.py | sudo python

To rozwiązało problem w systemie Mac OS w wersji Sierra 10.12.6. Dzięki!
Zhenhua

Działa dla mnie na High Sierra. Dziękuję Ci.
rustyshackleford

28

Użyłem wersji pip3 9.0.1i ostatnio nie mogłem zainstalować żadnych pakietów za pomocą polecenia pip3 install.

Wersja Mac OS: EI Captain 10.11.5 .

wersja pythona: 3.5

Wypróbowałem polecenie:

curl https://bootstrap.pypa.io/get-pip.py | python

Dla mnie to nie zadziałało.

Więc odinstalowałem starszego pipa i zainstalowałem najnowszą wersję 10.0.0, wpisując to:

python3 -m pip uninstall pip setuptools
curl https://bootstrap.pypa.io/get-pip.py | python3

Teraz mój problem został rozwiązany. Jeśli używasz python2, możesz zastąpić python3 pythonem. Mam nadzieję, że u Ciebie też działa.

Nawiasem mówiąc, dla niektórych nowicjuszy, takich jak ja, musisz wpisać kod: sudo -i

aby zdobyć korzenie dobrze :) Powodzenia!


Powtarzając powyższe, miałem zamiar spróbować po prostu czystą ponowną instalację Pythona i Pipa, ale to zadziałało. Dziękuję Ci!
MikeJannino

nie ignoruj ​​"sudo -i"
Dung,

27

Prawdopodobnie widzisz ten błąd ; zobacz także tutaj .

Najprostszym rozwiązaniem jest downgrade pip na taki, który nie korzysta z SSL: easy_install pip==1.2.1. W ten sposób tracisz korzyści w zakresie bezpieczeństwa wynikające z używania SSL. Prawdziwym rozwiązaniem jest użycie dystrybucji Pythona połączonej z nowszą biblioteką SSL.


1
Dzięki, Dougal, ale pip 1.2.1 też nie działa. - Czy możesz mi powiedzieć, jak mogę zaktualizować moją dystrybucję Pythona do nowszej biblioteki ssl?
contentclown

właściwie, właśnie teraz wszystko działa. dzięki za pomoc, Dougal!
contentclown

7
@ user2348946 Co zrobiłeś, aby było to przydatne dla ludzi w przyszłości?
Dougal

1
@DannyStaple Tak, dokładnie to zasugerowałem. Oczywiście, użycie niesystemowej instalacji Pythona nie jest trudne; Osobiście używam Anacondy , która świetnie sprawdza się w aplikacjach numerycznych, ale nadawałaby się do wszystkiego.
Dougal,

1
@ user13107 Tak; jak zauważono w komentarzach do zaakceptowanej odpowiedzi, PyPI wymaga teraz TLS 1.2. Musisz zaktualizować swoją instalację Pythona.
Dougal

18

Inną przyczyną błędów SSL może być zły czas systemowy - certyfikaty nie będą sprawdzane, jeśli jest zbyt daleko od teraźniejszości.


Dziękuję Ci!! To było jedyne rozwiązanie, które zadziałało. Zegar mojego serwera był NIESAMOWITY.
Adam Spiers


6

Podobny problem rozwiązałem dodając --trusted-host pypi.python.orgopcję


6

Aby zainstalować inny pakiet, muszę użyć najnowszej wersji pip, ponieważ 9.0.1ma ten problem z SSL. Aby zaktualizować pip przez sam pip, muszę najpierw rozwiązać ten problem z SSL. Aby wyskoczyć z tej niekończącej się pętli, uważam, że jest to jedyny sposób, który działa dla mnie.

  1. Znajdź najnowszą wersję pip na tej stronie: https://pypi.org/simple/pip/
  2. Pobierz .whlplik najnowszej wersji.
  3. Użyj pip, aby zainstalować najnowszą wersję pip. (Użyj swojej najnowszej wersji tutaj)

sudo pip zainstaluj pip-10.0.1-py2.py3-none-any.whl

Teraz pip jest najnowszą wersją i może zainstalować wszystko.


5

Rozwiązanie - Zainstaluj dowolny pakiet, zaznaczając poniżej hosty jako zaufane

  • pypi.python.org
  • pypi.org
  • files.pythonhosted.org

Rozwiązanie tymczasowe

pip install --trusted-host pypi.python.org --trusted-host pypi.org --trusted-host files.pythonhosted.org {package name}

Trwałe rozwiązanie - Zaktualizuj swój PIP (problem z wersją 9.0.1) do najnowszego.

pip install --trusted-host pypi.python.org --trusted-host pypi.org --trusted-host files.pythonhosted.org pytest-xdist

python -m pip install --trusted-host pypi.python.org --trusted-host pypi.org --trusted-host files.pythonhosted.org --upgrade pip

3

macOS Sierra 10.12.6. Nie udało się nic zainstalować przez pip (python zainstalowany przez homebrew). Wszystkie powyższe odpowiedzi nie zadziałały.

Ostatecznie aktualizacja z Pythona 3.5 do 3.6 zadziałała.

brew update
brew doctor #(in case you see such suggestion by brew)

następnie postępuj zgodnie z wszelkimi dodatkowymi sugestiami przez brew, tj. nadpisz link do pythona.


1
Jeśli korzystasz z systemu Mac OS 10.12, pierwotny problem może być w rzeczywistości związany z niedawnym wycofaniem protokołu TLS pip. Zobacz ten post, aby uzyskać szczegółowe informacje. pipprzestał obsługiwać starszy protokół zabezpieczeń w 10.12 i starszych wersjach.
Anupam

3

Miałem ten sam problem. Właśnie zaktualizowałem Pythona z 2.7.0 do 2.7.15 . Rozwiązuje problem.

Możesz pobrać tutaj .


Właśnie to naprawiłem po raz dziesiąty. Pomimo bardzo dobrego zrozumienia problemu na OSX i wiedzy o tym, czym i gdzie jest awaria, każde „rozwiązanie” jest inne niż w przeszłości. Tym razem głosowanie dotyczy instalacji 2.7.15 na OSX. Proste i skuteczne. Istnieją również uwagi w wydaniu dotyczące problemu SSL / OpenSSH. Pozdrawiam i dziękuję bardzo!
Marc

3

Jak zamieścił powyżej blackjar, poniższe linie zadziałały dla mnie

pip --trusted-host pypi.python.org --trusted-host files.pythonhosted.org --trusted-host pypi.org install xxx

Musisz dać wszystkie trzy --trusted-host options. Próbowałem tylko z pierwszym, po sprawdzeniu odpowiedzi, ale to nie zadziałało w moim przypadku.


2

Możesz także użyć conda do zainstalowania pakietów: Zobacz http://conda.pydata.org

conda install nltk

Najlepszym sposobem korzystania z conda jest pobranie Minicondy, ale możesz też spróbować

pip install conda
conda init
conda install nltk

7
Szczerze mówiąc, jeśli pip installnie działa, zalecenie zainstalowania innego menedżera pakietów przez pip jest ... no cóż, wiesz.
Dave Newton

To faktycznie zadziałało dla mnie. Zainstalowałem Anacondę po zainstalowaniu Pythona. Nie miałem pojęcia, że ​​anaconda ma swój własny instalator, dopóki tego nie przeczytałem. Więc to jest odpowiedź, która zadziałała dla mnie. Komentarz Travisa dotyczy kwestii kurczaka / jajka, ponieważ zalecił zainstalowanie minikondy.
jeśli głosowanie NewQuestion CLOSE

2

Dla mnie najnowszy pip (1.5.6) działa dobrze z niezabezpieczonym pakietem nltk, jeśli tylko powiesz mu, aby nie był tak wybredny w kwestii bezpieczeństwa:

pip install --upgrade --force-reinstall --allow-all-external --allow-unverified ntlk nltk

To stara odpowiedź. W której wersji pipjesteś?
płyty kuchenne

1
Chyba ostatni. Myślę, że rozwiązałem problem, odinstalowując wszystko (Python 2.7, pip itp.) I ponownie instalując wszystko w kółko
DaniPaniz

2

wypróbowany

pip --trusted-host pypi.python.org --trusted-host files.pythonhosted.org --trusted-host pypi.org install xxx 

i wreszcie udało się, nie do końca rozumiem, dlaczego domena pypi.python.org została zmieniona.


1

Jeśli łączysz się przez proxy, wykonaj export https_proxy=<your_proxy> (w Unix lub Git Bash), a następnie ponów instalację.

Jeśli używasz cmd systemu Windows, zmienia się to na set https_proxy=<your_proxy>.


1

Wykonałem następujące czynności w systemie Windows 7, aby rozwiązać ten problem.

c: \ Program Files \ Python36 \ Scripts> pip install beautifulsoup4 --trusted-host *

Wydaje się, że --trusted-host rozwiązuje problem z SSL, a * oznacza każdego hosta.

Oczywiście to nie działa, ponieważ pojawiają się inne błędy, ponieważ nie ma wersji, która spełnia wymagania beautifulsoup4, ale nie sądzę, aby ten problem był związany z ogólnym pytaniem.


1

Po prostu odinstaluj i ponownie zainstaluj pakiety pip, które będą dla ciebie treningiem.

Wersja Mac OS: High Sierra 10.13.6

wersja pythona: 3.7.0

Więc odinstalowałem starszego pipa i zainstalowałem najnowszą wersję 10.0.0 wpisując to:

python3 -m pip uninstall pip setuptools

curl https://bootstrap.pypa.io/get-pip.py | python3

Teraz mój problem został rozwiązany. Jeśli używasz python2, możesz zastąpić python3 pythonem. Mam nadzieję, że u Ciebie też działa.


0

Jeśli chodzi tylko o nltk, kiedyś miałem podobny problem. Spróbuj postępować zgodnie z instrukcją instalacji. Zainstaluj NLTK

Jeśli jesteś pewien, że nie działa z żadnym innym modułem, możesz mieć problem z zainstalowanymi różnymi wersjami Pythona.

Lub spróbuj sprawdzić, czy mówi, że pip jest już zainstalowany .:

sudo apt-get install python-pip python-dev build-essential 

i zobacz, czy to działa.


0

Rozwiązałem ten problem, wykonując następujące czynności (na sles 11sp2)

zypper remove pip
easy_install pip=1.2.1
pip install --upgrade scons

Oto te same kroki w marionetce (która powinna działać na wszystkich dystrybucjach)

  package { 'python-pip':
    ensure => absent,
  }
  exec { 'python-pip':
    command  => '/usr/bin/easy_install pip==1.2.1',
    require  => Package['python-pip'],
  }
  package { 'scons': 
    ensure   => latest,
    provider => pip,
    require  => Exec['python-pip'],
  }


0

Miałem to z PyCharm i aktualizując pip do 10.0.1 zepsuł pip z błędem „main” not found in module ”.

Mogłem rozwiązać ten problem, instalując pip 9.0.3, jak widać w innym wątku. Oto kroki, które zrobiłem:

  1. Pobrano wersję 9.0.3 pip z https://pypi.org/simple/pip/ (ponieważ pip nie mógł być użyty do zainstalowania go).
  2. Zainstaluj pip 9.0.3 z tar.gz python -m pip install pip-9.0.3.tar.gz

Potem wszystko zaczęło działać.




0

Wypróbowałem niektóre z popularnych odpowiedzi, ale nadal nie mogłem zainstalować żadnych bibliotek / pakietów przy użyciu pip install .

Mój konkretny błąd to 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain użyciu Miniconda dla Windows (instalator Miniconda3-py37_4.8.3-Windows-x86.exe).

W końcu działa, gdy zrobiłem to: pip install -r requirements.txt --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org

W szczególności dodałem to, aby działało: --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.