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?

Jeff Widman
fonte
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
foobrew
fonte
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
DevOops
fonte
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.

Dave
fonte
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.

Carlwgeorge
fonte
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

Shen Yu
fonte
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.

Aundre
fonte
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 :)

Sundar Gsv
fonte
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

Gerardw
fonte
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
user2412711
fonte
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
user1631898
fonte
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