Jak zainstalować najnowszą wersję PIP, gdy już zainstalowałem dostarczoną przez Ubuntu?

18

W Ubuntu 16.04, gdy wykonujesz:

pip install --upgrade pip

dostajesz:

Collecting pip
  Using cached pip-8.1.2-py2.py3-none-any.whl
Installing collected packages: pip
Successfully installed pip-8.1.1
You are using pip version 8.1.1, however version 8.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

Słusznie. Spróbuj teraz

pip install --upgrade pip

i dostajesz:

Collecting pip
  Using cached pip-8.1.2-py2.py3-none-any.whl
Installing collected packages: pip
Successfully installed pip-8.1.1
You are using pip version 8.1.1, however version 8.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

Jak zdobyć PIP 8.1.2?

użytkownik2413
źródło
Czy sudo -H pip install --upgrade pipdziała
edwinksl
@edwinksl: daje takie same wyniki jak inne polecenia.
user2413
To wydaje się dziwne, ponieważ zadziałało dla mnie. Prawdopodobnie trzeba złożyć raport o błędzie.
edwinksl
@edwinksl: dzięki. Poczekam jeszcze kilka dni i zrobię to>
user2413
1
@edwinksl Właśnie otworzyłem problem na wypadek, gdyby ktoś chciał go śledzić.
sethmlarson

Odpowiedzi:

13

Aktualizacja systemu Python nie jest dobrym pomysłem, chyba że faktycznie pracujesz nad kodem Ubuntu i masz konkretny powód. Istnieje wiele zależności systemowych, które można przerwać, aktualizując za pomocą pip zamiast używać bibliotek Python w repozytorium APT.

Jeśli tworzysz aplikacje w Pythonie i potrzebujesz zmienić wersje bibliotek, powinieneś użyć opcji --user do pipowania lub utworzyć virtualenv do przechowywania wersji libs użytkowników.

Obie te metody z wdziękiem wrócą do korzystania z bibliotek systemowych, jeśli nie mają własnych kopii, virtualenv ma więcej opcji kontrolowania tej informacji zwrotnej.

pip z opcją --user

Jest to tak proste, jak dodanie --user na końcu wszystkich poleceń pip, spowoduje to umieszczenie bibliotek Pythona w ~ / .local / lib / pythonX.X (gdzie XX to numer wersji Pythona), zostaną one wyszukane tutaj najpierw uważaj, aby zrobić to dla roota, jeśli musisz uruchomić przez sudo, ponieważ może to wpłynąć na python systemowy.

virtualenv

Działa to w podobny sposób do powyższego, ale jest mniej powiązane z konkretnym użytkownikiem, więc nie ma ograniczenia sudo, możesz także sklonować virtualenv i uaktualnić go, aby przetestować zmiany, dzięki czemu możesz przywrócić, jeśli jest do bani. http://docs.python-guide.org/en/latest/dev/virtualenvs/

Amias
źródło
1
Naprawdę chcesz wykonać Altową instalację Pythona, jeśli chcesz 2.7, więc nie będziesz ingerował w Python OS. Stamtąd musisz zaktualizować pip w instalacji alt przed venv. Chcesz także --no-cache-dir, aby zapobiec zainstalowaniu wersji buforowanej.
Wyrmwood,
Aktualizacja pip nie ma negatywnego wpływu (w każdym razie) na python 2.7, który jest domyślnie dostarczany.
Dotknięty
10

Wygląda na to, że może to być problem z instalacją pliku .whl dla wersji pip8.1.2. pipObejściem do zainstalowania 8.1.2 jest pobranie źródła bezpośrednio z PyPi i zainstalowanie go za pośrednictwem setup.py.

Dla mnie działało:

wget https://pypi.python.org/packages/e7/a8/7556133689add8d1a54c0b14aeff0acb03c64707ce100ecd53934da1aa13/pip-8.1.2.tar.gz
tar -xzvf pip-8.1.2.tar.gz
cd pip-8.1.2
sudo python setup.py install

To oczywiście nie jest rozwiązanie do zainstalowania pipa 8.1.2 pip install --upgrade, ale powinno usunąć ostrzeżenie, dopóki problem nie zostanie rozwiązany .

sethmlarson
źródło
W tym wątku znajduje się komentarz, który sugeruje, że jest to częściowo związane z łataniem ubuntu do łatanej wersji pip, aby zatrzymać aktualizację zainstalowanych pakietów.
Amias
5

sudo -H python -m pip install --upgrade piprozwiąże twój problem. Jak ktoś wspomniał powyżej, chociaż specyficzny dla systemu wymaga pewnych języków w Pythonie 2.7. Biorąc to pod uwagę, możesz zaktualizować pip bez negatywnego wpływu na to, ale możesz także zainstalować 3.5 wraz z nim, jeśli chcesz.

-Hjest flaga dla sudoże wnioski, że polityka bezpieczeństwa ustawić zmienną środowiskową domu do katalogu domowego określonej przez wpis bazy hasło użytkownika docelowego. W zależności od zasad może to być zachowanie domyślne.

Cierpiący
źródło
Jeśli ktoś chce głosować za takim przemyślanym postem, powinieneś naprawdę powiedzieć, dlaczego jest to kiepska forma.
javadba
Ponieważ są źli i muszą dać komuś gniew. Zły na to, o co prosisz, życie w ogóle. przepełnienie stosu zamieniło się w miejsce, w którym można przyjść i być nękanym.
Dotknięty
2

Odinstaluj pip za pomocą apt-get i zainstaluj go za pomocą easy_install. To działało dla mnie.

sudo apt-get remove python-pip
sudo easy_install pip
toliveira
źródło
easy_install kończy się niepowodzeniem. I dostać bash: /usr/bin/pip: No such file or directory. Nie mogę też teraz oczyścić pipa. Mam nadzieję, że to nie całkowicie zepsuło pip na moim komputerze.
Dean Schulze