Comment installer pip dans CentOS 7?

110

CentOS 7 EPEL inclut désormais Python 3.4: yum install python34

Cependant, lorsque j'essaye cela, même si Python 3.4 s'installe avec succès, il ne semble pas installer pip. Ce qui est bizarre, car pipdevrait être inclus par défaut avec Python 3.4. which pip3ne trouve rien, ni ne trouve which pip.

Comment accéder à pip à partir du package Python 3.4 dans la version CentOS 7 EPEL?

Jeff Widman
la source
3
probablement lié: stackoverflow.com/questions/26576086/…
cel
1
J'ai regardé par là, mais rien ne se rapporte malheureusement.
Jeff Widman
Il n'y a donc pas de pip34binaire? Eh bien, vous pourrez toujours appeler pip via python -m pips'il est installé. S'il n'est pas installé, il python -m ensurepippeut être utilisé pour l'amorcer. Vous aurez peut-être besoin de droits élevés pour appeler cette dernière commande.
cel
1
Correct, pas de pip*binaire que je puisse trouver /usr/bin/. Assez sûr que je cherche au bon endroit parce que c'est là python3.4et pyvenv-3.4où ils sont installés, et ils ne sont pas liés par un lien symbolique vers ailleurs. Eh bien, on dirait que ce n'est tout simplement pas inclus dans le paquet python3.4, ce qui est un peu ennuyeux. Le ensurepipmodule n'existe pas pour l'un python3.4ou l'autre, donc je vais probablement utiliser simplement les dépôts iUS jusqu'à ce que EPEL soit livré python3-pipou équivalent.
Jeff Widman
1
Apparemment, l' effort EPEL python3 en est encore à ses débuts . Voir aussi pyvenv3.4 ne fonctionne pas sans pip et le ensurepip de python34 est cassé .
maxschlepzig

Réponses:

158

Le moyen le plus simple que j'ai trouvé pour installer pip3 (pour les packages python3.x) sur CentOS 7 est:

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

Vous devrez bien sûr activer le référentiel EPEL au préalable.

Vous devriez maintenant pouvoir exécuter des commandes comme celles-ci pour installer des packages pour python3.x:

$ pip3 install foo
bière
la source
Je pense que c'est aussi la meilleure solution, tout en gardant tout sain d'esprit. Je ne recommande pas de modifier init .py
laapsaap
La meilleure solution convenue en fait la réponse par défaut
johhny B
7
Sur mon système RHEL-7, avec EPEL mis en place, je viens de le faireyum install python34-pip
mike
1
Il convient de noter qui a easy_install-3.4 pipécrasé le système pip. J'ai fait un yum reinstall python-pipaprès pour m'assurer qu'aucun problème. Cela signifie que vous devez appeler explicitement pip3pour l'utiliser, comme prévu.
miken32
52
curl https://bootstrap.pypa.io/get-pip.py | python3.4

Ou si vous ne l'avez pas curlpour une raison quelconque:

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

Après cela, vous devriez pouvoir exécuter

$ pip3
DevOops
la source
1
J'ai eu cette erreur: zipimport.ZipImportError: impossible de décompresser les données; zlib non disponible ... savez-vous pourquoi cela se produit?
SoldierCorp
On dirait que vous n'avez pas zlib-devel ou zlib, selon. Pouvez-vous essayer de l'installer avec votre gestionnaire de paquets? sudo yum install zlib ou sudo apt-get install zlib. J'espère que cela aide.
DevOops
Je suis également confronté au même problème que @SoldierCorp, mais lorsque j'essaie de l'installer, zlibcela indique Package zlib-1.2.3-29.el6.x86_64 already installed and latest versionune idée de ce qui se passe?
Mostafiz Rahman
Si vous installez sur OS X 10.11, vous pouvez essayer d'exécuter à nouveau la configuration de xcode: xcode-select --install
DevOops
J'utilise centos 6.7
Mostafiz Rahman
16

Le package CentOS 7 yum pour python34 inclut le ensurepipmodule, mais pour une raison quelconque, il manque les fichiers setuptools et pip qui devraient faire partie de ce module. Pour réparer, téléchargez les dernières roues de PyPI dans le _bundledrépertoire du module ( /lib64/python3.4/ensurepip/_bundled/):

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

puis modifiez __init__.pypour correspondre aux versions téléchargées:

_SETUPTOOLS_VERSION = "18.4"
_PIP_VERSION = "7.1.2"

après quoi python3.4 -m ensurepipfonctionne comme prévu. Ensurepip est appelé automatiquement chaque fois que vous créez un environnement virtuel, par exemple:

pyvenv-3.4 py3
source py3/bin/activate

Espérons que RH corrigera le package yum Python3.4 cassé afin que le correctif manuel ne soit pas nécessaire.

Dave
la source
2
Très appréciée. Pour ceux qui en ont besoin, les roues sont disponibles ici pour setuptools pypi.python.org/simple/setuptools et ici pour pip pypi.python.org/simple/pip
yoshiwaan
Malheureusement, la modification du fichier init .py de ensurepip entraîne un échec de vérification du RPM et sera également écrasé lors des mises à jour de package.
carlwgeorge
2
J'aimerais vraiment savoir quelle est la raison pour laquelle ils ont causé ce gâchis. Je me dis qu'il doit y avoir une bonne raison ...
xenithorb
@xenithorb, la justification était probablement de conditionner pip séparément - puisque Fedora l'a également fait python3-pip. Le projet python3 sur EPEL est apparemment toujours en cours.
maxschlepzig
EPEL (extra-packages pour Linux d'entreprise) python36fonctionne désormais avec python3.6 -m ensurepip.
Kevin le
9

Mise à jour: Le bogue python34 mentionné ci-dessous a finalement été corrigé. C'est un excellent choix maintenant.

Plutôt que d'utiliser des packages EPEL python34 cassés , vous pouvez activer le référentiel IUS et le faire fonctionner correctement.

  • pip dans des environnements virtuels

Les packages principaux python34uet python35uIUS incluent l'outil pyvenv ( /usr/bin/pyvenv-3.4ou /usr/bin/pyvenv-3.5) qui comprend des roues groupées de pip et setuptools pour l'amorçage des environnements virtuels.

  • pip global

Les packages python34u-pipet python35u-pipIUS incluent respectivement /usr/bin/pip3.4et /usr/bin/pip3.5. Celles-ci fonctionnent très bien pour installer des packages dans le répertoire système site-packages.

carlwgeorge
la source
1
Je ne sais pas pourquoi quelqu'un refuserait cette réponse. Merci d'avoir attiré notre attention sur l'IUS.
Dave
En ce qui concerne le vote défavorable, il aurait été utile d'expliquer le commentaire "cassé" sur les installations EPEL. J'ai aussi découvert l'IUS aujourd'hui à partir d'une recherche connexe et toute mention de cela dans la réponse mérite ici un vote favorable.
Mark Edington
1
@MarkEdington J'ai modifié la réponse pour ajouter un lien vers bugzilla.redhat.com/show_bug.cgi?id=1263057 .
carlwgeorge
1
Ce problème a été résolu avec python34-3.4.5-4
DrStrangepork
8
yum install python34-pip

pip3.4 install foo

Vous aurez probablement besoin des référentiels EPEL installés:

yum install -y epel-release

Shen Yu
la source
De quel dépôt ce paquet yum provient-il?
Jeff Widman
1
CentOS 7. *:yum install -y epel-release
Shen Yu
1
Des sons comme celui-ci ont été ajoutés récemment à EPEL et devraient probablement devenir la bonne réponse. Une fois que les autres auront confirmé que cela fonctionne également pour eux, je ferai de cette réponse la réponse acceptée.
Jeff Widman
Fonctionne comme un charme pour moi. :)
Bill Cheng
Cette réponse a aidé lors de l'exécution sur un serveur VPS
jking
3

Mise à jour 2019

J'ai essayé easy_install au début, mais il n'installe pas les packages de manière claire et intuitive. Aussi, quand vient le temps de supprimer des paquets, il a laissé beaucoup d'artefacts qui devaient être nettoyés.

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

C'était la solution qui a fonctionné pour moi, il installe "pip3" comme pip sur le système. Il utilise également une structure de régime standard pour qu'il soit propre lors de son retrait. Je ne sais pas quel processus vous auriez besoin de suivre si vous voulez à la fois le gestionnaire de packages python2 et python3 sur votre système.

Aundre
la source
1
C'est la bonne façon de le faire lors de l'exécution d'un serveur VPS, principalement utilisé avec cPanel
jking le
0

Il existe un moyen simple de le faire en utilisant simplement easy_install (Un Setuptools pour empaqueter la librarie python).

  • Supposition. Avant de faire cela, vérifiez si python est installé sur votre machine Centos (au moins 2.x).

  • Étapes pour installer pip.

    1. Alors installons easy_install,

      sudo yum installer python-setuptools python-setuptools-devel

    2. Faisons maintenant pip avec easy_install,

      sudo easy_install pip

C'est génial. Maintenant vous avez pip :)

Sundar Gsv
la source
0

Identifiez la version de python3 que vous avez installée:

yum search pip

puis installez la meilleure correspondance. Utilisez reqoquery pour trouver le nom du pip3.eg résultant

repoquery -l python36u-pip

me dit d'utiliser pip3.6 au lieu de pip3

Gérardw
la source
0

Voici les étapes que j'ai suivies pour installer python34 et 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
la source
Pour installer pip3 en utilisant curl j'ai faitcurl https://bootstrap.pypa.io/get-pip.py | python3
mRyan
-4

Sur CentOS 7, la pipversion se trouve pip3.4et se trouve ici:

/usr/local/bin/pip3.4
user1631898
la source
2
Il est peu probable que les fichiers dans / usr / local / bin soient empaquetés par RHEL / CentOS. Pouvez-vous exécuter avec succès "rpm -qf /usr/local/bin/pip3.4"? Si cela fonctionne, "rpm -qi <packagename>" sur la sortie ... qui est le conditionneur?
Jeff W