2014-12-30 12 views
38

Moja konsola:Dlaczego PIP wywołuje błąd AssertionError podczas zamrażania pip?

desarrollador @ desarrollador-HP-14-Notebook-PC1: ~ $ pip zamrożenie
Wyjątek:
Traceback (najnowsza wezwanie ostatni):
File „/ usr/lib/python2.7/dist-packages/pip/basecommand.py ", wiersz 126, główny
self.run (opcje, args)
Plik" /usr/lib/python2.7/dist-packages/pip/commands /freeze.py ", wiersz 68, w uruchomieniu
req = pip.FrozenRequirement.from_dist (dist, dependency_links, find_tags = find_tags)
Plik "/usr/lib/python2.7/dist-packages/pip/ init .py", wiersz 156, in from_dist
assert len ​​(specyfikacja) == 1 i specyfikacja [0] [0] = = '=='
AssertionError

zainstalowałem pakiet tornado i to stało się w międzyczasie. Jak mogę to naprawić?

+0

ty dostarczają bardzo mało informacji. Jaką wersję pip używasz? Czy obejrzałeś różne wątki w SO z tym samym lub podobnym komunikatem o błędzie? Może to być związane z 'dystrybucją'. Czy nadal masz zainstalowaną wersję 'distribute'? – cel

+1

Nie ma wątku takiego w SO. Używam najnowszej wersji. –

+0

Dostaję to również. Używam wersji pip 1.5.4. 'pip install' działa dobrze. –

Odpowiedz

18

Powód: Pakiet python-pip w Ubuntu 12.04 jest poważnie przestarzały i ma kilka błędów z niektórych nazw pakietów (jak widzę) i nie może przetworzyć je poprawnie.

Rozwiązanie: zainstaluj nowszą wersję pip, przez easy_install.

+1

Właśnie zdałem sobie sprawę, mam kilka wersji pip na mojej $ PATH! pierwszym pipsem na ścieżce była starsza wersja. uruchom każdy z pipów za pomocą pip-V, aby sprawdzić, który z nich jest najnowszy (dzisiaj: 7.1.2) i usuń stare. –

+0

skończyło się usuwaniem/usuwaniem/czyszczeniem wszystkich "pip", które miałem, a następnie instalowanie najnowszego. Myślę, że to dlatego, że istnieje 5 różnych sposobów instalacji pip, i każdy robi to trochę inaczej. –

8

Znalazłem rozwiązanie pod adresem this link.

pip install setuptools==7.0

+0

to nie działa –

+1

Spróbuj uruchomić 'pip list'. Jeśli twój problem jest podobny do mojego, pip wyświetli listę większości pakietów przed zgłoszeniem błędu w pakiecie, który powoduje problem. Następnie spójrz na '/ usr/local/lib/python2.7/dist-packages /' (lub gdziekolwiek twoje pakiety są zainstalowane) i zobacz, czy możesz dowiedzieć się, co następny pakiet jest alfabetycznie. Może to dostarczy Ci informacji potrzebnych do rozwiązania? –

+0

Potrafię uaktualnić pip! : D Byłem przy użyciu pip 1.0 (ten, który jest dostarczany z Ubuntu 12.04) –

15

Twój pip może być nieaktualny. Nawet w Ubuntu 14.04 LTS, wersja pip zainstalowana przy użyciu apt-get install python-pip była 1.5.4. Spróbuj zaktualizować pip ręcznie, a być może także nowe pakiety ponownie.

pip --version # 1.5.4 
curl -O https://bootstrap.pypa.io/get-pip.py 
sudo python get-pip.py 
pip --version # 6.0.8 
hash -r # reset bash cache 

https://pip.pypa.io/en/latest/installing.html

+0

To działało dla mnie na Ubuntu 14.04 – learn2day

36

ten pracował dla mnie (Ubuntu, zarówno 12 i 14 LTS):

pip install -U setuptools 
pip install -U pip 

uaktualnić do najnowszej wersji setuptools w celu móc upgrade do najnowszą wersję pip i uaktualnij do najnowszej wersji pip, aby uzyskać wersję, która naprawiła błąd AssertException.

+1

czasami dodajesz 'sudo' jeśli root zainstalował' pip' –

3

pierwsze, wpadłem Martina Mohana rozwiązanie:

/usr/local/bin/pip uninstall pip 
apt-get remove python-pip 
apt-get install python-pip 

Następnie boredcoding jest ostatecznie ustalona problemu, oba rozwiązania znajdują się w pobliżu dolnej części wątku: I screwed up the system version of Python Pip on Ubuntu 12.10

$apt-get install python-pip 
$which pip 
/usr/bin/pip 

$pip install -U pip 
$which pip 
/usr/bin/pip 

$hash -r 
$which pip 
/usr/local/bin/pip 

Logika tych dwóch fix są podane w wątku (link powyżej), więc powstrzymam się od wchodzenia w każdy z nich.

4

Problem jest spowodowany zainstalowaniem starej wersji pip. Uruchom następujące polecenie, aby zainstalować nową wersję pip:

sudo easy_install -U pip. 
2

może być trochę późno, ale jedno znalazłem tam są 2 lub trzy wersje pip zainstalowane (w zależności od tego, co jest zainstalowany)

pip - zainstalowana wersja systemu operacyjnego, zamrożenie nie działa i może być nieaktualna pip2 - nowsza zainstalowana, ale aktualizująca pip przez pip itd. pip3 - zainstalowana, jeśli masz zainstalowane python3 i python2 w tym samym czasie .

Można też zmiany, które pip przyzwyczaja w $ PATH, lub zrobić to, co zrobiłem:

PIP2 zamrażać (który działa na ubuntu14 jeśli masz więcej niż jedną opcję dla Pythona)