Jak zainstalować pip w CentOS 7?

110

CentOS 7 EPEL zawiera teraz Python 3.4: yum install python34

Jednak gdy próbuję, mimo że Python 3.4 instaluje się pomyślnie, nie wydaje się, aby instalował pip. Co jest dziwne, ponieważ pippowinno być domyślnie dołączone do Pythona 3.4. which pip3niczego nie znajduje, ani nie znajduje which pip.

Jak uzyskać dostęp do pip z pakietu Python 3.4 w wersji CentOS 7 EPEL?

Jeff Widman
źródło
3
prawdopodobnie związane: stackoverflow.com/questions/26576086/ ...
cel
1
Przejrzałem tam, ale niestety nic się nie odnosi.
Jeff Widman,
Więc nie ma pip34binarnego? Cóż, zawsze będziesz mógł wywołać pip przez, python -m pipjeśli jest zainstalowany. Jeśli nie jest zainstalowany, python -m ensurepipmożna go użyć do załadowania. Aby wywołać to drugie polecenie, możesz potrzebować podwyższonych uprawnień.
cel
1
Prawidłowo, brak pip*plików binarnych, w których mogę znaleźć /usr/bin/. Jestem pewien, że szukam we właściwym miejscu, ponieważ tam python3.4i pyvenv-3.4gdzie jest zainstalowany i nie są one powiązane symbolicznie z żadnym innym. Cóż, wygląda na to, że po prostu nie ma go w pakiecie python3.4, co jest trochę denerwujące. ensurepipModuł nie istnieje dla python3.4obaj, więc będę prawdopodobnie wystarczy użyć repo ius aż statków EPEL python3-piplub równoważne.
Jeff Widman,
1
Najwyraźniej wysiłek python3 EPEL jest wciąż na wczesnym etapie . Zobacz też, że pyvenv3.4 nie działa bez pip, a mechanizm zapewnia, że ​​python34 jest uszkodzony .
maxschlepzig

Odpowiedzi:

158

Najprostszym sposobem, w jaki znalazłem instalację pip3 (dla pakietów python3.x) na CentOS 7, jest:

$ sudo yum install python34-setuptools
$ sudo easy_install-3.4 pip

Oczywiście musisz mieć włączone repozytorium EPEL.

Powinieneś teraz móc uruchamiać polecenia, takie jak poniższe, aby zainstalować pakiety dla python3.x:

$ pip3 install foo
foobrew
źródło
Myślę, że to też najlepsze rozwiązanie, zachowując wszystko przy zdrowych zmysłach. Nie polecam edycji init .py
laapsaap
Uzgodnione najlepsze rozwiązanie sprawia, że ​​jest to domyślna odpowiedź
johhny B
7
W moim systemie RHEL-7, z ustawionym EPEL, właśnie mi się udałoyum install python34-pip
Mike
1
Warto zauważyć, że easy_install-3.4 pipnadpisano system pip. Zrobiłem yum reinstall python-pippóźniej, aby upewnić się, że nie ma problemów. Oznacza to, że musisz jawnie wywołać, pip3aby go użyć, zgodnie z oczekiwaniami.
miken32
52
curl https://bootstrap.pypa.io/get-pip.py | python3.4

Lub jeśli nie masz curl z jakiegoś powodu :

wget https://bootstrap.pypa.io/get-pip.py
python3.4 get-pip.py

Po tym powinieneś być w stanie biec

$ pip3
DevOops
źródło
1
Otrzymałem ten błąd: zipimport.ZipImportError: nie można rozpakować danych; zlib niedostępny ... czy wiesz, dlaczego tak się dzieje?
SoldierCorp
Wygląda na to, że nie masz zlib-devel lub zlib, w zależności od. Czy możesz spróbować zainstalować go za pomocą swojego menedżera pakietów? sudo yum install zlib lub sudo apt-get install zlib. Mam nadzieję że to pomogło.
DevOops
Mam też taki sam problem jak @SoldierCorp, ale kiedy próbuję zainstalować zlib, wyświetla się Package zlib-1.2.3-29.el6.x86_64 already installed and latest versionjakiś pomysł, co się dzieje?
Mostafiz Rahman
Jeśli instalujesz w systemie OS X 10.11, możesz spróbować ponownie uruchomić konfigurację xcode: xcode-select --install
DevOops
Używam centos 6.7
Mostafiz Rahman
16

Pakiet yum CentOS 7 dla python34 zawiera ensurepipmoduł, ale z jakiegoś powodu brakuje mu plików setuptools i pip, które powinny być częścią tego modułu. Aby naprawić, pobierz najnowsze koła z PyPI do katalogu modułu _bundled( /lib64/python3.4/ensurepip/_bundled/):

setuptools-18.4-py2.py3-none-any.whl
pip-7.1.2-py2.py3-none-any.whl

następnie edytuj, __init__.pyaby dopasować pobrane wersje:

_SETUPTOOLS_VERSION = "18.4"
_PIP_VERSION = "7.1.2"

po czym python3.4 -m ensurepipdziała zgodnie z przeznaczeniem. Upewnij się, że pip jest wywoływany automatycznie za każdym razem, gdy tworzysz środowisko wirtualne, na przykład:

pyvenv-3.4 py3
source py3/bin/activate

Miejmy nadzieję, że RH naprawi zepsuty pakiet yum Python3.4 tak, że ręczne łatanie nie będzie potrzebne.

Dave
źródło
2
Bardzo cenione. Dla tych, którzy tego potrzebują, koła są dostępne tutaj dla setuptools pypi.python.org/simple/setuptools i tutaj dla pip pypi.python.org/simple/pip
yoshiwaan
Niestety, edycja pliku init .py zapewniapip powoduje niepowodzenie weryfikacji RPM i zostanie nadpisana przy aktualizacjach pakietów.
carlwgeorge,
2
I byłoby naprawdę lubią wiedzieć, co do cholery ich uzasadnienie było za spowodowanie ten bałagan jest. Mówię sobie, że musi być dobry powód ...
xenithorb,
@xenithorb, uzasadnieniem prawdopodobnie było oddzielne pakowanie pip - ponieważ Fedora również to zrobiła python3-pip. Python3 w projekcie EPEL najwyraźniej nadal trwa.
maxschlepzig
EPEL (dodatkowe pakiety dla systemu Linux dla przedsiębiorstw) python36działa teraz z plikami python3.6 -m ensurepip.
Kevin
9

Aktualizacja: Wspomniany poniżej błąd python34 został ostatecznie naprawiony. Teraz jest to doskonały wybór.

Zamiast używać uszkodzonych pakietów EPEL python34 , możesz włączyć repozytorium IUS i sprawić , by działało poprawnie.

  • pip w środowiskach wirtualnych

Pakiet główny python34ui python35uIUS zawierają narzędzie pyvenv ( /usr/bin/pyvenv-3.4lub /usr/bin/pyvenv-3.5), które zawiera dołączone koła pip i narzędzia konfiguracyjne do ładowania środowisk wirtualnych.

  • globalny pip

python34u-pipI python35u-pippakiety IUS to /usr/bin/pip3.4i /usr/bin/pip3.5odpowiednio. Działają one dobrze, aby zainstalować pakiety w katalogu systemowym site-packages.

carlwgeorge
źródło
1
Nie jestem pewien, dlaczego ktoś miałby negatywnie ocenić tę odpowiedź. Dziękuję za zwrócenie naszej uwagi na IUS.
Dave
Jeśli chodzi o głos przeciw, pomocne byłoby wyjaśnienie „zepsutego” komentarza dotyczącego instalacji EPEL. Ja również odkryłem dziś IUS z pokrewnego wyszukiwania i każda wzmianka o tym w odpowiedzi tutaj zasługuje na pochwałę.
Mark Edington,
1
@MarkEdington Zmieniłem odpowiedź, dodając link do bugzilla.redhat.com/show_bug.cgi?id=1263057 .
carlwgeorge
1
Ten problem został rozwiązany w python34-3.4.5-4
DrStrangepork,
8
yum install python34-pip

pip3.4 install foo

Prawdopodobnie będziesz potrzebować zainstalowanych repozytoriów EPEL:

yum install -y epel-release

Shen Yu
źródło
Z którego repozytorium pochodzi ten pakiet Yum?
Jeff Widman
1
CentOS 7. *:yum install -y epel-release
Shen Yu
1
Wygląda na to, że dodano to niedawno do EPEL i prawdopodobnie powinno stać się poprawną odpowiedzią. Gdy inni potwierdzą, że to działa również dla nich, wtedy uznam to za zaakceptowaną odpowiedź.
Jeff Widman
U mnie działa jak urok. :)
Bill Cheng
Ta odpowiedź pomogła podczas uruchamiania na serwerze VPS
jking
3

Zaktualizuj 2019

Na początku wypróbowałem easy_install, ale nie instaluje on pakietów w czysty i intuicyjny sposób. Również kiedy przychodzi czas na usuwanie pakietów, pozostawiało wiele artefaktów, które wymagały wyczyszczenia.

sudo yum install epel-release
sudo yum install python34-pip
pip install package

Było rozwiązaniem, które zadziałało dla mnie, instaluje "pip3" jako pip w systemie. Używa również standardowej struktury rpm, więc czyści podczas usuwania. Nie jestem pewien, jaki proces musiałbyś wykonać, jeśli chcesz mieć w swoim systemie menedżera pakietów python2 i python3.

Aundre
źródło
1
Jest to właściwy sposób, aby to zrobić podczas uruchamiania serwera VPS, używanego głównie z cPanel
jking
0

Można to zrobić w prosty sposób, używając po prostu easy_install (narzędzia Setup do pakowania biblioteki Pythona).

  • Założenie. Przed wykonaniem tej czynności sprawdź, czy na komputerze z Centosem jest zainstalowany język Python (co najmniej 2.x).

  • Kroki, aby zainstalować pip.

    1. Więc zainstalujmy easy_install,

      sudo yum install python-setuptools python-setuptools-devel

    2. Teraz zróbmy pip z easy_install,

      sudo easy_install pip

To wspaniale. Teraz masz pip :)

Sundar Gsv
źródło
0

Sprawdź, jaką wersję python3 masz zainstalowaną:

yum search pip

a następnie zainstaluj najlepsze dopasowanie. Użyj reqoquery, aby znaleźć nazwę wynikowego pip3.eg

repoquery -l python36u-pip

mówi mi, żebym używał pip3.6 zamiast pip3

gerardw
źródło
0

Poniżej znajdują się kroki, które wykonałem, aby zainstalować python34 i pip

yum update -y
yum -y install yum-utils
yum -y groupinstall development
yum -y install https://centos7.iuscommunity.org/ius-release.rpm
yum makecache
yum -y install python34u  python34u-pip
python3.6 -v
echo "alias python=/usr/bin/python3.4" >> ~/.bash_profile
source ~/.bash_profile
pip3 install --upgrade pip

# if yum install python34u-pip doesnt work, try 

curl https://bootstrap.pypa.io/get-pip.py | python
user2412711
źródło
Aby zainstalować pip3 za pomocą curl, zrobiłemcurl https://bootstrap.pypa.io/get-pip.py | python3
mRyan
-4

W CentOS 7 pipwersja znajduje się pip3.4i znajduje się tutaj:

/usr/local/bin/pip3.4
user1631898
źródło
2
Pliki w / usr / local / bin prawdopodobnie nie zostaną spakowane przez RHEL / CentOS. Czy możesz pomyślnie wykonać „rpm -qf /usr/local/bin/pip3.4”? Jeśli to zadziała, na wyjściu pojawi się „rpm -qi <nazwa_pakietu>” ... kto jest programem pakującym?
Jeff W