¿Cómo instalar pip en CentOS 7?

110

CentOS 7 EPEL ahora incluye Python 3.4: yum install python34

Sin embargo, cuando lo intento, aunque Python 3.4 se instala correctamente, no parece instalar pip. Lo cual es extraño, porque pipdebería incluirse de forma predeterminada con Python 3.4. which pip3no encuentra nada, ni lo hace which pip.

¿Cómo accedo a pip desde el paquete Python 3.4 en la versión EPEL de CentOS 7?

Jeff Widman
fuente
3
probablemente relacionado: stackoverflow.com/questions/26576086/…
cel
1
Miré por allí, pero lamentablemente nada se relaciona.
Jeff Widman
¿Entonces no hay pip34binario? Bueno, siempre podrás llamar a pip a través de python -m pipsi está instalado. Si no está instalado, python -m ensurepipse puede utilizar para arrancarlo. Es posible que necesite derechos elevados para llamar al último comando.
cel
1
Correcto, no hay pip*binario en el que pueda encontrar /usr/bin/. Estoy bastante seguro de que estoy buscando en el lugar correcto porque ahí es donde python3.4y pyvenv-3.4donde están instalados, y no están enlazados simbólicamente a otro lugar. Ah, bueno, parece que simplemente no está incluido en el paquete python3.4, lo cual es un poco molesto. El ensurepipmódulo no existe para python3.4ninguno de los dos, así que probablemente solo use los repositorios iUS hasta que se envíe EPEL python3-pipo equivalente.
Jeff Widman
1
Aparentemente, el esfuerzo EPEL de python3 aún se encuentra en una etapa temprana . Consulte también pyvenv3.4 no funciona sin pip y el seguro de python34 está roto .
maxschlepzig

Respuestas:

158

La forma más fácil que he encontrado para instalar pip3 (para paquetes python3.x) en CentOS 7 es:

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

Por supuesto, necesitará tener habilitado el repositorio EPEL de antemano.

Ahora debería poder ejecutar comandos como el siguiente para instalar paquetes para python3.x:

$ pip3 install foo
foobrew
fuente
Creo que esta también es la mejor solución, manteniendo todo cuerdo. No recomiendo editar init .py
laapsaap
Acordado mejor solución hacer que esta respuesta por defecto
johhny B
7
En mi sistema RHEL-7, con EPEL configurado, lo hice con éxitoyum install python34-pip
Mike
1
Vale la pena señalar que easy_install-3.4 pipsobrescribió el sistema pip. Hice un yum reinstall python-pipdespués para asegurarme de que no haya problemas. Esto significa que debe llamar explícitamente pip3para usarlo, como se esperaba.
miken32
52
curl https://bootstrap.pypa.io/get-pip.py | python3.4

O si no lo tiene curlpor alguna razón:

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

Después de esto, debería poder ejecutar

$ pip3
DevOops
fuente
1
Recibí este error: zipimport.ZipImportError: no se pueden descomprimir los datos; zlib no disponible ... ¿sabe por qué sucede esto?
SoldierCorp
Parece que no tienes zlib-devel o zlib, dependiendo. ¿Puedes intentar instalarlo con tu administrador de paquetes? sudo yum install zlib o sudo apt-get install zlib. Espero que eso ayude.
DevOops
También estoy enfrentando el mismo problema que @SoldierCorp, pero cuando intento instalarlo zlib, ¿ Package zlib-1.2.3-29.el6.x86_64 already installed and latest versionalguna idea de lo que está sucediendo?
Mostafiz Rahman
Si está instalando en OS X 10.11, puede intentar ejecutar la configuración de xcode nuevamente: xcode-select --install
DevOops
Estoy usando centos 6.7
Mostafiz Rahman
16

El paquete yum de CentOS 7 para python34 incluye el ensurepipmódulo, pero por alguna razón faltan las herramientas de configuración y los archivos pip que deberían ser parte de ese módulo. Para solucionarlo, descargue las últimas ruedas de PyPI en el _bundleddirectorio del módulo ( /lib64/python3.4/ensurepip/_bundled/):

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

luego edite __init__.pypara que coincida con las versiones descargadas:

_SETUPTOOLS_VERSION = "18.4"
_PIP_VERSION = "7.1.2"

después de lo cual python3.4 -m ensurepipfunciona según lo previsto. Asegúrese de quepip se invoque automáticamente cada vez que cree un entorno virtual, por ejemplo:

pyvenv-3.4 py3
source py3/bin/activate

Con suerte, RH arreglará el paquete yum de Python3.4 roto para que no sea necesario el parche manual.

Dave
fuente
2
Muy apreciado. Para aquellos que necesitan esto, las ruedas están disponibles aquí para setuptools pypi.python.org/simple/setuptools y aquí para pip pypi.python.org/simple/pip
yoshiwaan
Desafortunadamente, la edición del archivo init .py de securepip causa un error de verificación de RPM y también se sobrescribirá en las actualizaciones de paquetes.
carlwgeorge
2
Realmente me encantaría saber cuál diablos fue su razón de ser para causar este desastre. Me digo a mí mismo que debe haber una buena razón ...
xenithorb
@xenithorb, la razón fundamental probablemente fue empaquetar pip por separado, ya que Fedora también lo ha hecho python3-pip. El proyecto python3 en EPEL aparentemente todavía está en progreso.
maxschlepzig
EPEL (paquetes adicionales para Linux empresarial) python36ahora funciona con python3.6 -m ensurepip.
Kevin
9

Actualización: El error de python34 mencionado a continuación finalmente se ha solucionado. Ahora es una elección perfecta.

En lugar de usar paquetes EPEL python34 rotos , puede habilitar el repositorio IUS y hacer que funcione correctamente.

  • pip dentro de entornos virtuales

Los paquetes principal python34ue python35uIUS incluyen la herramienta pyvenv ( /usr/bin/pyvenv-3.4o /usr/bin/pyvenv-3.5) que incluye ruedas de pip y herramientas de configuración para arrancar entornos virtuales.

  • pip global

Los paquetes python34u-pipy python35u-pipIUS incluyen /usr/bin/pip3.4y /usr/bin/pip3.5respectivamente. Estos funcionan bien para instalar paquetes en el directorio de paquetes del sitio del sistema.

carlwgeorge
fuente
1
No estoy seguro de por qué alguien rechazaría esta respuesta. Gracias por llamar nuestra atención sobre IUS.
Dave
Con respecto al voto negativo, habría sido útil explicar el comentario "roto" sobre las instalaciones de EPEL. Yo también descubrí IUS hoy a partir de una búsqueda relacionada y cualquier mención de eso en la respuesta aquí merece un voto positivo.
Mark Edington
1
@MarkEdington Edité la respuesta para agregar un enlace a bugzilla.redhat.com/show_bug.cgi?id=1263057 .
carlwgeorge
1
Este problema se solucionó con python34-3.4.5-4
DrStrangepork
8
yum install python34-pip

pip3.4 install foo

Es probable que necesite los repositorios EPEL instalados:

yum install -y epel-release

Shen Yu
fuente
¿De qué repositorio proviene este paquete de yum?
Jeff Widman
1
CentOS 7. *:yum install -y epel-release
Shen Yu
1
Parece que esto se agregó recientemente a EPEL y probablemente debería convertirse en la respuesta correcta. Una vez que otros confirmen que esto también funciona para ellos, haré que esta sea la respuesta aceptada.
Jeff Widman
Funciona como un encanto para mí. :)
Bill Cheng
Esta respuesta ayudó cuando se ejecuta en un servidor VPS
jking
3

Actualización 2019

Probé easy_install al principio, pero no instala los paquetes de una manera limpia e intuitiva. Además, cuando llega el momento de eliminar paquetes, deja muchos artefactos que deben limpiarse.

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

Fue la solución que funcionó para mí, instala "pip3" como pip en el sistema. También utiliza una estructura de rpm estándar para limpiar en su eliminación. No estoy seguro de qué proceso necesitaría realizar si desea el administrador de paquetes python2 y python3 en su sistema.

Aundre
fuente
1
Esta es la forma correcta de hacerlo cuando se ejecuta un servidor VPS, que se usa principalmente con cPanel
jking
0

Hay una manera fácil de hacer esto simplemente usando easy_install (A Setuptools para empaquetar la biblioteca de Python).

  • Suposición. Antes de hacer esto, verifique si tiene Python instalado en su máquina Centos (al menos 2.x).

  • Pasos para instalar pip.

    1. Así que instalemos easy_install,

      sudo yum instalar python-setuptools python-setuptools-devel

    2. Ahora hagamos pip con easy_install,

      sudo easy_install pip

Eso es genial. Ahora tienes pip :)

Sundar Gsv
fuente
0

Averigüe qué versión de python3 ha instalado:

yum search pip

y luego instale la mejor combinación. Utilice reqoquery para encontrar el nombre del pip3.eg resultante

repoquery -l python36u-pip

me dice que use pip3.6 en lugar de pip3

gerardw
fuente
0

A continuación se muestran los pasos que seguí para instalar python34 y 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
usuario2412711
fuente
Para instalar pip3 usando curl lo hicecurl https://bootstrap.pypa.io/get-pip.py | python3
mRyan
-4

En CentOS 7, la pipversión está pip3.4y se encuentra aquí:

/usr/local/bin/pip3.4
usuario1631898
fuente
2
Es poco probable que RHEL / CentOS empaquete los archivos en / usr / local / bin. ¿Puede ejecutar correctamente "rpm -qf /usr/local/bin/pip3.4"? Si esto funciona, "rpm -qi <packagename>" en la salida ... ¿quién es el empaquetador?
Jeff W