Dla rodziny Ubuntu, Debian, Linux Mint
Dzięki powyższemu wyjaśnieniu Anthony'ego możesz zachować oryginalny systemowy pip (w / usr / bin / i dist-packages /) i usunąć ręcznie zainstalowany pip (w ~ / .local /), aby rozwiązać konflikt:
$ python3 -m pip uninstall pip
Ubuntu / Debian pip v8.1.1 (16.04) z python3-pip
pakietu debian (patrz $ pip3 -V
) pokazuje te same wyniki wyszukiwania co najnowszy pip v10.0.1 i instaluje najnowsze moduły z PyPI w porządku. Ma działające pip
polecenie (już w $ PATH), a także ładną --user
opcję domyślnie załataną od 2016 roku. Patrząc na informacje o wydaniu pip , nowsze wersje dotyczą głównie poprawek błędów specyficznych dla poszczególnych przypadków użycia i niektórych nowych funkcji, więc nie wszyscy muszą jeszcze przyspieszyć aktualizację pip. Poza tym nowy pip 10 można wdrożyć na wirtualnych wirtualnych językach Pythona.
Ale bez względu na pipsy, twój system operacyjny pozwala na szybką instalację popularnych modułów Pythona (w tym numpy) z APT, bez potrzeby pipowania, na przykład:
$ sudo apt install python3-numpy python3-scipy
(z zależnościami systemowymi)
$ sudo apt install python3-pip
( łatka Debiana, nieco starsza, ale to nie ma znaczenia)
Szybkie przypomnienie o składni apt ( man apt
szczegółowe informacje):
$ sudo apt update
(aby ponownie zsynchronizować pliki indeksu pakietów Ubuntu z aktualnych źródeł)
$ apt search <python-package-name>
(wyszukiwanie pełnotekstowe wszystkich dostępnych pakietów)
$ apt show <python-package-name>
(wyświetla szczegółowy opis pakietu)
$ sudo apt install <python-package-name>
Nazwy pakietów z prefiksem python-
są dla języka Python 2; i przedrostkiem python3-
są dla Python 3 (np. python3-panda). Są tysiące i przechodzą testy integracyjne w ramach Debiana i Ubuntu. Jeśli nie chcesz instalować na poziomie użytkownika ( pip install --user
opcja) lub w virtualenv / venv, apt może być tym, czego potrzebujesz. Te pakiety systemowe są również dostępne z wirtualnych środowisk, ponieważ virtualenv z wdziękiem wróci do korzystania z bibliotek systemowych podczas importowania, jeśli środowiska nie otrzymały kopii modułów. Twoje niestandardowo zainstalowane (z pipem --user
) moduły dla poszczególnych użytkowników ~/.local/lib
również je zastąpią.
Uwaga: ponieważ jest to instalacja ogólnosystemowa , rzadko trzeba je usuwać (należy pamiętać o zależnościach systemu operacyjnego). Jest to wygodne dla pakietów z wieloma zależnościami systemowymi (np. Z scipy lub matplotlib), ponieważ APT będzie śledzić i zapewnia wszystkie wymagane biblioteki systemowe i rozszerzenia C, podczas gdy w przypadku pipa nie masz takich gwarancji .
W rzeczywistości, dla ogólnosystemowych pakietów Python (w przeciwieństwie do na użytkownika, poziom katalogu domowego lub niższy), Ubuntu oczekuje użycia menedżera pakietów APT (zamiast sudo pip
), aby uniknąć uszkodzenia systemu operacyjnego: sudo pip3
celuje w ten sam /usr/lib/python3/dist-packages
katalog, w którym APT przechowuje system operacyjny wrażliwe moduły. Najnowsze wydania Debian / Ubuntu w dużym stopniu zależą od Python 3, więc jego wstępnie zainstalowanymi modułami zarządza apt
i nie należy ich zmieniać.
Więc jeśli używasz pip3 install
polecenia, upewnij się, że działa on w izolowanym środowisku wirtualnegosudo apt install python3-virtualenv
dewelopera , takim jak virtualenv ( ) lub z wbudowanym Python3 ( -m venv
), lub na poziomie użytkownika ( --user
opcja pip, domyślnie w Ubuntu pip od 2016 r.), ale nie w całym systemie (nigdy sudo pip3
!), ponieważ pip zakłóca działanie menedżera pakietów APT i może wpływać na komponenty systemu operacyjnego Ubuntu , gdy nieoczekiwanie zmieni się używany przez system moduł python. Powodzenia!
P. S. Wszystkie powyższe dotyczą rozwiązania „idealnego” (sposób Debian / Ubuntu).
Jeśli nadal chcesz używać wyłącznie nowego pip3 v10, istnieją 3 szybkie obejścia:
- po prostu otwórz nową sesję bash (nowa karta lub typ terminala
bash
) - a pip3 v10 stanie się dostępny (patrz pip3 -V
). Pip3 v8 debiana pozostaje zainstalowany, ale jest uszkodzony; lub
- polecenie
$ hash -d pip3 && pip3 -V
odświeżenia ścieżki pliku pip3 w zmiennej $ PATH. Pip3 v8 debiana pozostaje zainstalowany, ale jest uszkodzony; lub
- polecenie
$ sudo apt remove python3-pip && hash -d pip3
całkowitego odinstalowania pip3 v8 Debiana, na korzyść nowego pip3 v10.
Uwaga: Zawsze będziesz musiał dodać --user
flagę do każdego pipa nie dostarczonego przez Debiana, chyba że jesteś w virtualenv! (wdraża pakiety Pythona ~/.local/
, domyślnie w dostarczonych przez debian / ubuntu python3-pip i python-pip od 2016). Twoje użycie pip 10 w całym systemie, poza virtualenv, nie jest tak naprawdę obsługiwane przez Ubuntu / Debian. Nigdy sudo pip3
!
Dalsze szczegóły:
https://github.com/pypa/pip/issues/5221#issuecomment-382069604
https://github.com/pypa/pip/issues/5240#issuecomment-381673100