Come installare pip in CentOS 7?


110

CentOS 7 EPEL ora include Python 3.4: yum install python34

Tuttavia, quando lo provo, anche se Python 3.4 si installa correttamente, non sembra installare pip. Il che è strano, perché pipdovrebbe essere incluso di default con Python 3.4. which pip3non trova niente, né lo fa which pip.

Come si accede a pip dal pacchetto Python 3.4 nella versione CentOS 7 EPEL?


3
probabilmente correlato: stackoverflow.com/questions/26576086/…
cel

1
Ho guardato lì, ma sfortunatamente nulla ha a che fare.
Jeff Widman

Quindi non ci sono pip34binari? Bene, sarai sempre in grado di chiamare pip tramite python -m pipse è installato. Se non è installato python -m ensurepippuò essere utilizzato per eseguirne il bootstrap. Potresti aver bisogno di diritti elevati per chiamare quest'ultimo comando.
cel

1
Esatto, nessun file pip*binario che riesco a trovare /usr/bin/. Abbastanza sicuro che sto cercando nel posto giusto perché è lì python3.4e pyvenv-3.4dove sono installati, e non sono collegati simbolicamente da qualche altra parte. Ah beh, sembra che semplicemente non sia incluso nel pacchetto python3.4, il che è un po 'fastidioso. Il ensurepipmodulo non esiste per python3.4nessuno dei due, quindi probabilmente userò solo i repository iUS fino a quando non verrà spedito EPEL python3-pipo equivalente.
Jeff Widman

1
Apparentemente, lo sforzo di python3 EPEL è ancora in una fase iniziale . Vedi anche pyvenv3.4 non funziona senza pip e il securepip di python34 non funziona .
maxschlepzig

Risposte:


158

Il modo più semplice che ho trovato per installare pip3 (per i pacchetti python3.x) su CentOS 7 è:

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

Ovviamente dovrai prima abilitare il repository EPEL.

Ora dovresti essere in grado di eseguire comandi come i seguenti per installare i pacchetti per python3.x:

$ pip3 install foo

Penso che anche questa sia la soluzione migliore, pur mantenendo tutto sano. Non consiglio di modificare init .py
laapsaap

La migliore soluzione concordata rende questa la risposta predefinita
johhny B

7
Sul mio sistema RHEL-7, con la configurazione EPEL, l'ho fatto con successoyum install python34-pip
mike

1
Vale la pena notare che ha easy_install-3.4 pipsovrascritto il sistema pip. Ho fatto in yum reinstall python-pipseguito per assicurarmi che non ci fossero problemi. Ciò significa che devi chiamare esplicitamente pip3per usarlo, come previsto.
miken32

52
curl https://bootstrap.pypa.io/get-pip.py | python3.4

O se non hai curlper qualche motivo:

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

Dopo questo dovresti essere in grado di correre

$ pip3

1
Ho ricevuto questo errore: zipimport.ZipImportError: impossibile decomprimere i dati; zlib non disponibile ... sai perché succede?
SoldierCorp

Sembra che tu non abbia zlib-devel o zlib, a seconda. Puoi provare a installarlo con il tuo gestore di pacchetti? sudo yum install zlib o sudo apt-get install zlib. Spero che aiuti.
DevOops

Sto anche affrontando il problema come @SoldierCorp ma quando provo a installarlo zlibdice Package zlib-1.2.3-29.el6.x86_64 already installed and latest versionqualche idea di cosa sta succedendo?
Mostafiz Rahman

Se stai installando su OS X 10.11, puoi provare a eseguire nuovamente la configurazione di xcode: xcode-select --install
DevOops

Sto usando centesimi 6.7
Mostafiz Rahman

16

Il pacchetto yum di CentOS 7 per python34 include il ensurepipmodulo, ma per qualche motivo mancano gli strumenti di installazione e i file pip che dovrebbero far parte di quel modulo. Per risolvere il problema, scarica le ultime ruote da PyPI nella _bundleddirectory del modulo ( /lib64/python3.4/ensurepip/_bundled/):

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

quindi modifica __init__.pyper abbinare le versioni scaricate:

_SETUPTOOLS_VERSION = "18.4"
_PIP_VERSION = "7.1.2"

dopodiché python3.4 -m ensurepipfunziona come previsto. Assicurarsipip viene richiamato automaticamente ogni volta che si crea un ambiente virtuale, ad esempio:

pyvenv-3.4 py3
source py3/bin/activate

Si spera che RH risolva il pacchetto yum Python3.4 danneggiato in modo che non sia necessario applicare patch manuali.


2
Molto apprezzato. Per coloro che ne hanno bisogno, le ruote sono disponibili qui per setuptools pypi.python.org/simple/setuptools e qui per pip pypi.python.org/simple/pip
yoshiwaan

Sfortunatamente, la modifica del file init .py di surepip causa un errore di verifica RPM e verrà anche sovrascritto agli aggiornamenti del pacchetto.
carlwgeorge

2
Mi piacerebbe davvero sapere quale diavolo fosse la loro logica per causare questo pasticcio. Mi dico che deve esserci una buona ragione ...
xenithorb

@xenithorb, la logica era probabilmente quella di impacchettare pip separatamente, dal momento che anche Fedora ha python3-pip. Il progetto python3 su EPEL apparentemente è ancora in lavorazione.
maxschlepzig

EPEL (extra-packages per enterprise linux) python36ora funziona con python3.6 -m ensurepip.
Kevin

9

Aggiornamento: il bug di python34 menzionato di seguito è stato finalmente risolto. Adesso è una scelta perfetta.

Piuttosto che usare pacchetti EPEL python34 danneggiati , puoi abilitare il repository IUS e farlo funzionare correttamente.

  • pip all'interno di ambienti virtuali

I pacchetti principale python34ue python35uIUS includono lo strumento pyvenv ( /usr/bin/pyvenv-3.4o /usr/bin/pyvenv-3.5) che include ruote in bundle di pip e setuptools per il bootstrap degli ambienti virtuali.

  • pip globale

I pacchetti python34u-pipe python35u-pipIUS includono /usr/bin/pip3.4e /usr/bin/pip3.5rispettivamente. Funzionano perfettamente per installare i pacchetti nella directory dei pacchetti del sito di sistema.


1
Non sono sicuro del motivo per cui qualcuno dovrebbe votare a favore di questa risposta. Grazie per aver portato IUS alla nostra attenzione.
Dave

Per quanto riguarda il voto negativo, sarebbe stato utile spiegare il commento "non funzionante" sulle installazioni di EPEL. Anch'io ho scoperto lo IUS oggi da una ricerca correlata e qualsiasi menzione di ciò nella risposta qui merita un voto positivo.
Mark Edington

1
@MarkEdington Ho modificato la risposta per aggiungere un collegamento a bugzilla.redhat.com/show_bug.cgi?id=1263057 .
carlwgeorge

1
Questo problema è stato risolto con python34-3.4.5-4
DrStrangepork

8
yum install python34-pip

pip3.4 install foo

Probabilmente avrai bisogno dei repository EPEL installati:

yum install -y epel-release


Da quale repo proviene questo pacchetto yum?
Jeff Widman,

1
CentOS 7. *:yum install -y epel-release
Shen Yu

1
Sembra che questo sia stato aggiunto di recente a EPEL e probabilmente dovrebbe diventare la risposta corretta. Una volta che altri confermeranno che questo funziona anche per loro, renderò questa la risposta accettata.
Jeff Widman

Funziona come un fascino per me. :)
Bill Cheng

Questa risposta ha aiutato durante l'esecuzione su un server VPS
jking

3

Aggiorna 2019

All'inizio ho provato easy_install ma non installa i pacchetti in modo pulito e intuitivo. Inoltre, quando arriva il momento di rimuovere i pacchetti, lasciano molti artefatti che dovevano essere ripuliti.

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

Era la soluzione che ha funzionato per me, installa "pip3" come pip sul sistema. Utilizza anche una struttura rpm standard in modo che sia pulito nella sua rimozione. Non sono sicuro di quale processo dovresti prendere se vuoi sia il gestore di pacchetti python2 che python3 sul tuo sistema.


1
Questo è il modo giusto per farlo quando si esegue un server VPS, utilizzato principalmente con cPanel
jking

0

C'è un modo semplice per farlo semplicemente usando easy_install (A Setuptools per confezionare librarie python).

  • Assunzione. Prima di fare questo controlla se hai installato python sulla tua macchina Centos (almeno 2.x).

  • Passaggi per installare pip.

    1. Quindi installiamo easy_install,

      sudo yum install python-setuptools python-setuptools-devel

    2. Ora facciamo pip con easy_install,

      sudo easy_install pip

È fantastico. Ora hai pip :)


0

Scopri quale versione di python3 hai installato:

yum search pip

e quindi installa la migliore corrispondenza. Usa reqoquery per trovare il nome del pip3.eg risultante

repoquery -l python36u-pip

mi dice di usare pip3.6 invece di pip3


0

Di seguito sono riportati i passaggi che ho seguito per installare python34 e 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

Per installare pip3 usando curl ho fattocurl https://bootstrap.pypa.io/get-pip.py | python3
mRyan

-4

Su CentOS 7, la pipversione è pip3.4e si trova qui:

/usr/local/bin/pip3.4

2
È improbabile che i file in / usr / local / bin vengano impacchettati da RHEL / CentOS. Puoi eseguire con successo "rpm -qf /usr/local/bin/pip3.4"? Se funziona, "rpm -qi <packagename>" sull'output ... chi è il packager?
Jeff W
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.