Como instalar o pip no CentOS 7?


110

CentOS 7 EPEL agora inclui Python 3.4: yum install python34

No entanto, quando tento fazer isso, embora o Python 3.4 seja instalado com sucesso, ele não parece instalar o pip. O que é estranho, porque pipdeve ser incluído por padrão no Python 3.4. which pip3não encontra nada, nem encontra which pip.

Como acesso o pip do pacote Python 3.4 no lançamento do CentOS 7 EPEL?


3
provavelmente relacionado: stackoverflow.com/questions/26576086/…
cel

1
Olhei por lá, mas nada se relaciona, infelizmente.
Jeff Widman

Então não há pip34binário? Bem, você sempre poderá chamar o pip via python -m pipse ele estiver instalado. Se não estiver instalado, python -m ensurepippode ser usado para inicializá-lo. Você pode precisar de direitos elevados para chamar o último comando.
cel

1
Correto, nenhum pip*binário que eu possa encontrar /usr/bin/. Tenho quase certeza de que estou procurando no lugar certo porque é onde python3.4e pyvenv-3.4onde estão instalados e eles não têm links simbólicos para nenhum outro lugar. Bem, parece que ele simplesmente não está incluído no pacote python3.4, o que é um pouco chato. O ensurepipmódulo não existe para python3.4nenhum dos dois, então provavelmente usarei os repositórios iUS até que a EPEL seja enviada python3-pipou equivalente.
Jeff Widman

1
Aparentemente, o esforço do python3 EPEL ainda está em um estágio inicial . Veja também pyvenv3.4 não funciona sem pip e o surepip do python34 está quebrado .
maxschlepzig

Respostas:


158

A maneira mais fácil que encontrei de instalar o pip3 (para pacotes python3.x) no CentOS 7 é:

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

Você precisará ter o repositório EPEL habilitado antes, é claro.

Agora você deve conseguir executar comandos como os seguintes para instalar pacotes para python3.x:

$ pip3 install foo

Acho que essa é a melhor solução também, mantendo tudo são. Eu não recomendo editar init .py
laapsaap

A melhor solução acordada torna esta a resposta padrão
johhny B

7
No meu sistema RHEL-7, com EPEL configurado, acabei de fazer isso com sucessoyum install python34-pip
microfone de

1
Vale a pena notar que easy_install-3.4 pipsobrescreveu o sistema pip. Eu fiz um yum reinstall python-pipdepois para garantir que não houvesse problemas. Isso significa que você deve chamar explicitamente pip3para usá-lo, conforme o esperado.
miken32 de

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

Ou se você não tiver curlpor algum motivo:

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

Depois disso, você deve ser capaz de executar

$ pip3

1
Recebi este erro: zipimport.ZipImportError: não é possível descompactar dados; zlib não disponível ... você sabe por que isso acontece?
SoldierCorp

Parece que você não tem zlib-devel ou zlib, dependendo. Você pode tentar instalá-lo com seu gerenciador de pacotes? sudo yum install zlib ou sudo apt-get install zlib. Espero que ajude.
DevOops

Também estou enfrentando o mesmo problema que a @SoldierCorp mas quando tento instalá- zlibla diz Package zlib-1.2.3-29.el6.x86_64 already installed and latest versionalguma ideia do que está acontecendo?
Mostafiz Rahman

Se você estiver instalando no OS X 10.11, pode tentar executar a configuração do xcode novamente: xcode-select --install
DevOops

Estou usando centos 6.7
Mostafiz Rahman

16

O pacote CentOS 7 yum para python34 inclui o ensurepipmódulo, mas por algum motivo está faltando as ferramentas de configuração e os arquivos pip que deveriam fazer parte desse módulo. Para corrigir, baixe as rodas mais recentes do PyPI no _bundleddiretório do módulo ( /lib64/python3.4/ensurepip/_bundled/):

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

em seguida, edite __init__.pypara corresponder às versões baixadas:

_SETUPTOOLS_VERSION = "18.4"
_PIP_VERSION = "7.1.2"

depois disso, python3.4 -m ensurepipfunciona como pretendido. Certifique-se de que o pip seja chamado automaticamente sempre que você criar um ambiente virtual, por exemplo:

pyvenv-3.4 py3
source py3/bin/activate

Esperançosamente, o RH consertará o pacote Python3.4 yum quebrado para que o patch manual não seja necessário.


2
Muito apreciado. Para aqueles que precisam disso, as rodas estão disponíveis aqui para setuptools pypi.python.org/simple/setuptools e aqui para pip pypi.python.org/simple/pip
yoshiwaan

Infelizmente, a edição do arquivo init .py de verifypip causa falha na verificação de RPM e também será sobrescrito nas atualizações do pacote.
carlwgeorge

2
Eu realmente adoraria saber qual diabos foi o motivo para causar essa bagunça. Estou dizendo a mim mesmo que deve haver um bom motivo ...
xenithorb

@xenithorb, a lógica provavelmente era empacotar o pip separadamente - já que o Fedora também fez python3-pip. O projeto python3 no EPEL aparentemente ainda está em andamento.
maxschlepzig,

EPEL (pacotes extras para linux empresarial) python36agora funciona com python3.6 -m ensurepip.
Kevin

9

Atualização: O bug python34 mencionado abaixo foi finalmente corrigido. É uma escolha perfeitamente boa agora.

Em vez de usar pacotes EPEL python34 corrompidos , você pode ativar o repositório IUS e fazê-lo funcionar corretamente.

  • pip dentro de ambientes virtuais

Os pacotes principal python34ue python35uIUS incluem a ferramenta pyvenv ( /usr/bin/pyvenv-3.4ou /usr/bin/pyvenv-3.5) que inclui rodas empacotadas de pip e ferramentas de configuração para ambientes virtuais de bootstrap.

  • pip global

Os pacotes python34u-pipe python35u-pipIUS incluem /usr/bin/pip3.4e /usr/bin/pip3.5respectivamente. Eles funcionam bem para instalar pacotes no diretório de pacotes de sites do sistema.


1
Não tenho certeza de por que alguém iria negar essa resposta. Obrigado por chamar nossa atenção para o IUS.
Dave

Com relação ao downvote, teria sido útil explicar o comentário "quebrado" nas instalações de EPEL. Eu também descobri IUS hoje a partir de uma pesquisa relacionada e qualquer menção disso na resposta aqui merece um voto positivo.
Mark Edington de

1
@MarkEdington Eu editei a resposta para adicionar um link para bugzilla.redhat.com/show_bug.cgi?id=1263057 .
carlwgeorge de

1
Este problema foi corrigido com python34-3.4.5-4
DrStrangepork

8
yum install python34-pip

pip3.4 install foo

Você provavelmente precisará dos repositórios EPEL instalados:

yum install -y epel-release


De qual repositório é esse pacote yum vindo?
Jeff Widman

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

1
Parece que foi adicionado recentemente à EPEL e provavelmente deve se tornar a resposta correta. Assim que outros confirmarem que isso também funciona para eles, farei essa resposta aceita.
Jeff Widman

Funciona como um encanto para mim. :)
Bill Cheng

Esta resposta ajudou quando executado em um servidor VPS
começando em

3

Atualização 2019

Tentei o easy_install primeiro, mas ele não instala os pacotes de uma forma limpa e intuitiva. Além disso, quando chega a hora de remover os pacotes, muitos artefatos são deixados que precisam ser limpos.

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

Foi a solução que funcionou para mim, ele instala "pip3" como pip no sistema. Ele também usa uma estrutura rpm padrão para que seja limpo em sua remoção. Não tenho certeza de qual processo você precisa seguir se quiser os gerenciadores de pacotes python2 e python3 em seu sistema.


1
Esta é a maneira certa de fazer isso ao executar um servidor VPS, usado principalmente com cPanel
começando em

0

Existe uma maneira fácil de fazer isso usando apenas easy_install (uma ferramenta de instalação para empacotar a biblioteca python).

  • Suposição. Antes de fazer isso, verifique se você tem o python instalado em sua máquina Centos (pelo menos 2.x).

  • Passos para instalar o pip.

    1. Então, vamos instalar o easy_install,

      sudo yum install python-setuptools python-setuptools-devel

    2. Agora vamos fazer pip com easy_install,

      sudo easy_install pip

Isso é ótimo. Agora você tem pip :)


0

Descubra qual versão do python3 você instalou:

yum search pip

e instale a melhor combinação. Use reqoquery para encontrar o nome do pip3.eg resultante

repoquery -l python36u-pip

me diz para usar pip3.6 em vez de pip3


0

Abaixo estão as etapas que segui para instalar o python34 e o 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

Para instalar o pip3 usando curl eu fizcurl https://bootstrap.pypa.io/get-pip.py | python3
mRyan

-4

No CentOS 7, a pipversão está pip3.4e está localizada aqui:

/usr/local/bin/pip3.4

2
É improvável que os arquivos em / usr / local / bin sejam empacotados pelo RHEL / CentOS. Você consegue executar "rpm -qf /usr/local/bin/pip3.4" com sucesso? Se funcionar, "rpm -qi <packagename>" na saída ... quem é o empacotador?
Jeff W
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.