Najnowszy „pip” kończy się niepowodzeniem i wyświetlany jest komunikat „wymaga setuptools> = 0.8 dla informacji o dystrybucji”

81

Używając najnowszej (1.5) wersji programu pip, pojawia się błąd podczas próby zaktualizowania kilku pakietów. Na przykład sudo pip install -U pytzpowoduje niepowodzenie z:

Wheel installs require setuptools >= 0.8 for dist-info support.
pip's wheel support requires setuptools >= 0.8 for dist-info support.

Nie rozumiem tej wiadomości (mam setuptools2.1) ani co z tym zrobić.


Informacje o wyjątku z dziennika dotyczące tego błędu:

Exception information:
Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/pip/basecommand.py", line 122, in main
    status = self.run(options, args)
  File "/Library/Python/2.7/site-packages/pip/commands/install.py", line 230, in run
    finder = self._build_package_finder(options, index_urls, session)
  File "/Library/Python/2.7/site-packages/pip/commands/install.py", line 185, in _build_package_finder
    session=session,
  File "/Library/Python/2.7/site-packages/pip/index.py", line 50, in __init__
    self.use_wheel = use_wheel
  File "/Library/Python/2.7/site-packages/pip/index.py", line 89, in use_wheel
    raise InstallationError("pip's wheel support requires setuptools >= 0.8 for dist-info support.")
InstallationError: pip's wheel support requires setuptools >= 0.8 for dist-info support.
orome
źródło

Odpowiedzi:

148

To zadziałało dla mnie:

sudo pip install setuptools --no-use-wheel --upgrade

Zauważ, że jest to użycie sudo

AKTUALIZACJA

W oknie musisz po prostu wykonać pip install setuptools --no-use-wheel --upgradejako administrator. W systemie unix / linux sudopolecenie służy do podnoszenia uprawnień.

AKTUALIZACJA

Wydaje się, że zostało to naprawione w wersji 1.5.1.

Rolandf
źródło
Przepraszam, że nie rozwiązuje to całkowicie mojego problemu, nadal nad tym pracuję.
Rolandf,
Musiałem na razie cofnąć się za pomocą pip 1.4, poszukam poprawki później.
Rolandf,
Pracował dla mnie. Nie mam pojęcia, dlaczego tak się stało.
amoe,
4
Należy zauważyć, że dodana --no-use-wheelopcja po prostu pomija użycie „archiwów kołowych” , ale poza tym wykonuje dokładnie taką samą instalację, jak polecenie, które ją pomija.
orome,
1
Pracował dla mnie na Centos 6. Porozmawiaj o abstrakcyjnym komunikacie o błędzie.
Fred
11

Po pierwsze, nigdy nie powinieneś uruchamiać „sudo pip”.

Jeśli to możliwe, powinieneś użyć menedżera pakietów systemowych, ponieważ używa on podpisów GPG, aby upewnić się, że nie uruchamiasz złośliwego kodu.

W przeciwnym razie spróbuj zaktualizować narzędzia instalacyjne:

easy_install -U setuptools

Alternatywnie spróbuj:

pip install --user <somepackage>

Dotyczy to oczywiście pakietów „globalnych”. Najlepiej byłoby używać virtualenvs.

user1503941
źródło
6
Generalnie uruchamianie pip jako sudo jest złe. Jednak czasem trzeba zrobić konieczność instalowania rzeczy do systemu pyton (takie jak virtualenv lub PIP się), a następnie sudo jest właściwe.
Luke Sneeringer
1
@LukeSneeringer: Dlaczego jest to „złe”. Nie sądzę, żebym naprawdę miał wybór, bez większej rekonfiguracji.
orome
1
easy_install -U setuptoolsskały!
madzohan