Instalando o Python 3 no RHEL

128

Estou tentando instalar python3 no RHEL usando as seguintes etapas:

yum search python3

Que retornou No matches found for: python3

Seguido por:

yum search python

Nenhum dos resultados da pesquisa continha python3. O que devo tentar a seguir?

Chander Shivdasani
fonte
Suspeito que o RHEL ainda não inclua o Python 3. Você pode instalar um RPM criado para o Fedora: admin.fedoraproject.org/pkgdb/acls/name/python3
Thomas K
Você também pode sempre instalar a partir da fonte.
Dougal
Apenas observando a solicitação de revisão do EPEL para o Python 3.4 aqui: bugzilla.redhat.com/show_bug.cgi?id=1219411 Depois que isso for resolvido, eu (ou outra pessoa) publicarei uma nova resposta com os detalhes do EPEL.
Ncoghlan 01/07/2015
2
A resposta de Samuel Phan usando os repositórios de comunidade yum é melhor do que construir a partir da fonte, exatamente pelas razões que Samuel declarou. Você deve alterar a resposta aceita na dele.
Edward Ned Harvey

Respostas:

186

É fácil instalá-lo manualmente:

  1. Download (pode haver versões mais recentes no Python.org ):

    $ wget https://www.python.org/ftp/python/3.4.3/Python-3.4.3.tar.xz
  2. Descompactar

    $ tar xf Python-3.* 
    $ cd Python-3.*
    
  3. Preparar compilação

    $ ./configure
  4. Construir

    $ make
  5. Instalar

    $ make install

    OU se não desejar sobrescrever o pythonexecutável (mais seguro, pelo menos em algumas distros yumprecisa pythonser 2.x, como no RHEL6) - você pode instalar python3.*como uma instância simultânea no padrão do sistema com altinstall:

    $ make altinstall

Agora, se você quiser um diretório de instalação alternativo, poderá passar --prefixpara o configurecomando

Exemplo: para 'instalar' o Python em / opt / local, basta adicionar --prefix=/opt/local.

Após a make installetapa: Para usar sua nova instalação do Python, é possível que você ainda precise adicionar o [prefixo] / bin ao $PATHe [prefixo] / lib ao $LD_LIBRARY_PATH(dependendo do que --prefixvocê passou)

gecco
fonte
9
Você usou: bzip2 -cd Python-3.2.2.tar.bz2 | tar xvf - Este também é um posiblity simples: tar jxvf Python-3.2.2.tar.bz2
rajadhiraja
1
Eu tenho um 301 (movido) em um 404 ao usar o tar bz2. Eu mudei para .tgz e ele baixou bem.
Caleb
2
E para mim, o binário resultante foi nomeado python3.5 e mora aqui: [root @ machine python3.5] # which python3.5 /usr/local/bin/python3.5 Portanto, convém adicionar um link simbólico para esse nome python3 por conveniência
Will
6
se você começar no acceptable C compiler found in $PATH when installing pythonreffer para http://stackoverflow.com/questions/19816275/no-acceptable-c-compiler-found-in-path-when-installing-python
bnu
3
./configure --with-ensurepip=installpara ativar pip3ou você não terá pip3instalado após a compilação.
Searene
238

A instalação do RPM é geralmente melhor, porque:

  • você pode instalar e desinstalar (corretamente) o python3.
  • o tempo de instalação é bem mais rápido . Se você trabalha em um ambiente de nuvem com várias VMs, a compilação de python3 em cada VMs não é aceitável.

Solução 1: repositórios Red Hat e EPEL

A Red Hat adicionou através do repositório EPEL :

  • Python 3.4 para CentOS 6
  • Python 3.6 para CentOS 7

[EPEL] Como instalar o Python 3.4 no CentOS 6

sudo yum install -y epel-release
sudo yum install -y python34

# Install pip3
sudo yum install -y python34-setuptools  # install easy_install-3.4
sudo easy_install-3.4 pip

Você pode criar seu virtualenv usando pyvenv:

pyvenv /tmp/foo

[EPEL] Como instalar o Python 3.6 no CentOS 7

Com o CentOS7, pip3.6é fornecido como um pacote :)

sudo yum install -y epel-release
sudo yum install -y python36 python36-pip

Você pode criar seu virtualenv usando pyvenv:

python3.6 -m venv /tmp/foo

Se você usar o pyvenvscript, receberá um AVISO:

$ pyvenv-3.6 /tmp/foo
WARNING: the pyenv script is deprecated in favour of `python3.6 -m venv`

Solução 2: repositórios da comunidade IUS

A Comunidade IUS fornece alguns pacotes atualizados para o RHEL e o CentOS . Os caras por trás são da Rackspace, então eu acho que eles são bastante confiáveis ​​...

https://ius.io/

Verifique o repo certo para você aqui:

https://ius.io/setup

[IUS] Como instalar o Python 3.6 no CentOS 6

sudo yum install -y https://repo.ius.io/ius-release-el6.rpm
sudo yum install -y python36u python36u-pip

Você pode criar seu virtualenv usando pyvenv:

python3.6 -m venv /tmp/foo

[IUS] Como instalar o Python 3.6 no CentOS 7

sudo yum install -y https://repo.ius.io/ius-release-el7.rpm
sudo yum install -y python36u python36u-pip

Você pode criar seu virtualenv usando pyvenv:

python3.6 -m venv /tmp/foo
Samuel Phan
fonte
1
Corrigido o URL do pacote de liberação do IUS. eles atualizaram a versão, só isso. Se eles atualizarem o pacote novamente, você pode verificar o link para o RPM deles na página da web.
Samuel Phan
1
Como eu disse, o link na sua resposta contém caracteres unicode não imprimíveis. Quando copio / colo seu link, eis o que vejo no VIM: https://dl.iuscommunity.org/pub/ius/stable/CentOS/6/x86_64/iu<200c><200b>s-release-1.0-14.iu‌​s.centos6.noarch.rpm Aqui está o caractere unicode: fileformat.info/info/unicode/char/200c/index.htm O URL na minha resposta original funciona, acabei de testar isto.
Samuel Phan
1
Eu tenho dito que IUS repositório da comunidade não é tão confiável quanto Coleções de Software, então eu iria com a resposta de Mike Guerette no CentOS 6
bformet
2
Usando esta solução, como você instalaria o pip para python34?
Loïc
1
Muito boa pergunta, eu adicionei um comentário para isso. Foi o melhor que encontrei. Se você deseja manter a instalação baseada em RPM, use os repositórios IUS do CentOS 7. Eles fornecem a python34u-pip.
Samuel Phan
31

Além da resposta da gecco, eu alteraria a etapa 3 de:

./configure

para:

./configure --prefix=/opt/python3

Depois da instalação, você também pode:

# ln -s /opt/python3/bin/python3 /usr/bin/python3

É para garantir que a instalação não entre em conflito com o python instalado com o yum.

Veja a explicação que encontrei na Internet:

http://www.hosting.com/support/linux/installing-python-3-on-centosredhat-5x-from-source

rsc
fonte
16
Por que /opt? /usr/localexiste especificamente para esse fim e é onde, ./configuresem explícito --prefix, o colocará.
Cababunga
@ababunga Como escrevi, fui influenciado pela leitura do tutorial no site especificado. No entanto, a instalação do python da maneira acima pode ser útil - seria muito mais fácil desinstalá-lo (parece que o destino da desinstalação para make não é fornecido). Além disso, você pode facilmente instalar várias versões do python3 em diretórios separados especificados em / opt e definir manualmente qual usar ou testar.
rsc
Você também pode configurar seu PATH para conter a pasta de binários. Para mim, foiexport PATH=$PATH:/opt/python3/bin
Caleb
10

Juntamente com o Python 2.7 e 3.3, o Red Hat Software Collections agora inclui o Python 3.4 - todos funcionam no RHEL 6 e 7.

Os documentos do RHSCL 2.0 estão em https://access.redhat.com/documentation/en-US/Red_Hat_Software_Collections/

Além de muitos artigos em developerblog.redhat.com.

editar

Siga estas instruções para instalar o Python 3.4 no RHEL 6/7 ou CentOS 6/7:

# 1. Install the Software Collections tools:
yum install scl-utils

# 2. Download a package with repository for your system.
#  (See the Yum Repositories on external link. For RHEL/CentOS 6:)
wget https://www.softwarecollections.org/en/scls/rhscl/rh-python34/epel-6-x86_64/download/rhscl-rh-python34-epel-6-x86_64.noarch.rpm
#  or for RHEL/CentOS 7
wget https://www.softwarecollections.org/en/scls/rhscl/rh-python34/epel-7-x86_64/download/rhscl-rh-python34-epel-7-x86_64.noarch.rpm

# 3. Install the repo package (on RHEL you will need to enable optional channel first):
yum install rhscl-rh-python34-*.noarch.rpm

# 4. Install the collection:
yum install rh-python34

# 5. Start using software collections:
scl enable rh-python34 bash
Mike Guerette
fonte
//, isso não requer que habilitemos um shell especial? Combinado com virtualenvs, posso ver isso se tornando um pé no saco.
Nathan Basanese
//, por que isso exige scl enable rh-python34 bash? Quais são as implicações para usar isso mais tarde?
Nathan Basanese
Existe uma maneira de instalar o python3.5 no RedHat 6? Eu tentei wget https://www.softwarecollections.org/en/scls/rhscl/rh-python35/epel-6-x86_64/download/rhscl-rh-python35-epel-6-x86_64.noarch.rpm, mas não foi encontrado.
Searene
Você precisa se inscrever para obter as coleções? Quanto aquilo custa?
Noumenon
1
Não há custo extra. As coleções de software RH fazem parte de todas as assinaturas de desenvolvedor RHEL e da maioria das assinaturas RHEL. É possível obter assinaturas de desenvolvimento RHEL gratuitas em developers.redhat.com/download. Essas são assinaturas RHEL reais - todos os mesmos bits que os direitos de produção - mas são para fins de desenvolvimento.
Mike Guerette
9

Use os repositórios SCL.

sudo sh -c 'wget -qO- http://people.redhat.com/bkabrda/scl_python33.repo >> /etc/yum.repos.d/scl.repo'
sudo yum install python33
scl enable python27

(Este último comando deverá ser executado sempre que você desejar usar python27 em vez do padrão do sistema.)

Paul Draper
fonte
4
Depois de ler os documentos redhat, o que eu precisava fazer era também; scl enable python33 bashpara lançar um novo shell que será habilitado para python 3 ou scl enable python33 'python hello.py'que irá executar o seu arquivo de python usando python 3 no shell atual
lanches
//, Que instruções mais genéricas também permitiriam a instalação do Python 3.4?
Nathan Basanese
Se você estiver em RHEL, use coleções Red Hat Software: subscription-manager repos --enable rhel-7-server-optional-rpms --enable rhel-server-rhscl-7-rpms. Então você pode yum install rh-python36. Veja Como instalar o Python 3 no RHEL para obter mais informações.
Rob T.
9

Você pode fazer download de um RPMs de origem e RPMs binários para RHEL6 / CentOS6 aqui

Este é um backport da mais recente fonte de desenvolvimento do Fedora para o RHEL6 / CentOS6

Florian La Roche
fonte
Isso é ótimo. Obrigado pelo seu esforço, Florian. Talvez a execução createreponesses diretórios os torne ainda mais úteis para algumas pessoas.
Cababunga
Que alivio. as rpm instaladas perfeitamente.
lyomi
//, como fazemos um repositório a partir desse link?
Nathan Basanese
//, posso confirmar que isso funciona. Espere, eu acabei de pegar algo rápido que usou essa URL como baseurl: 0bin.net/paste/...
Nathan Basanese
6

Vejo todas as respostas como pedindo para compilar python3 a partir do código ou instalando o pacote RPM binário. Aqui está outra resposta para ativar o EPEL (Pacotes Extra para Enterprise Linux) e instalar o python usando o yum. Passos para RHEL 7.5 (Maipo)

yum install wget y
wget https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm
rpm ivh epel-*.rpm
yum install python36

Veja também o link

Jay Rajput
fonte
Funciona bem, especialmente se o caminho oficial do SCL não funcionar. Complemente o pip3, instale então:sudo yum install python34-setuptools
OSP
5

Eu estava tendo o mesmo problema usando o python 2.7. Siga as etapas abaixo para atualizar com êxito para 3.6. Você também pode tentar este

  1. Veja antes de atualizar a versão 2.x

    python --version
    Python 2.7.5
  2. Use o comando abaixo para atualizar seu python para a versão 3.x

    yum install python3x

    substitua x pelo número da versão desejada.

    ou seja, para instalar o python 3.6 execute

    yum install python36
  3. Depois disso, se você deseja definir esse python para sua versão padrão, adicione o arquivo bashrc

    vi ~ / .bashrc

    alias python='python3.6'
  4. execute o comando bash para aplicar as configurações

    bash 
  5. Agora você pode ver a versão abaixo

    python --version
    Python 3.6.3
IRSHAD
fonte
Esta resposta não funcionará sem adicionar um dos repositórios de terceiros EPEL ou IUS. Não há pacote python36 no RHEL. O pacote RHSCL é rh-python36.
Rob T.
4

Três etapas usando o Python 3.5 da Software Collections :

sudo yum install centos-release-scl
sudo yum install rh-python35
scl enable rh-python35 bash

Observe que o sudo não é necessário para o último comando. Agora podemos ver que python 3 é o padrão para o shell atual:

python --version
Python 3.5.1

Simplesmente pule o último comando, se você preferir o Python 2 como padrão para o shell atual.

Agora, digamos que os scripts do Python 3 causem um erro semelhante /usr/bin/env: python3: No such file or directory. Isso ocorre porque a instalação geralmente é feita em um caminho incomum:

/opt/rh/rh-python35/root/bin/python3

O acima seria normalmente um link simbólico. Se você deseja python3ser adicionado automaticamente ao $PATHpara todos os usuários na inicialização, uma maneira de fazer isso é adicionar um arquivo como:

sudo vim /etc/profile.d/rh-python35.sh

O que teria algo como:

#!/bin/bash

PATH=$PATH:/opt/rh/rh-python35/root/bin/

E agora, após uma reinicialização, se fizermos

python3 --version

Deveria apenas funcionar. Uma exceção seria um usuário gerado automaticamente como "jenkins" em um servidor Jenkins que não possui um shell. Nesse caso, adicionar manualmente o caminho $PATHnos scripts seria um caminho a percorrer.

Finalmente, se você estiver usando sudo pip3a instalação de pacotes, mas informa que o pip3 não pode ser encontrado, pode ser que você tenha um caminho seguro em / etc / sudoers . A verificação com sudo visudodeve confirmar isso. Para usar temporariamente o PATH padrão ao executar comandos, você pode executar, por exemplo:

sudo env "PATH=$PATH" pip3 --version

Veja esta pergunta para mais detalhes.

NOTA : Existe um Python 3.6 mais recente da Software Collections, mas eu não o recomendaria no momento, porque tive grandes dores de cabeça ao tentar instalar o Pycurl. Para o Python 3.5, isso não é um problema, porque eu fiz o sudo yum install sclo-python35-python-pycurlque funcionou imediatamente .

Nagev
fonte
No package centos-release-scl available.
5133 Joe
Está disponível no repositório do CentOS.
Nagev 6/03/19
4

Se você está no RHEL e deseja um Python suportado pela Red Hat, use as coleções do Red Hat Software (RHSCL). Os pacotes EPEL e IUS não são suportados pelo Red Hat. Muitas das respostas acima apontam para as coleções de software do CentOS. Embora você possa instalá-los, eles não são os pacotes suportados do Red Hat para RHEL.

Além disso, a resposta mais votada fornece maus conselhos - No RHEL, você não deseja alterar /usr/bin/python, /usr/bin/python2porque provavelmente quebrará yume outras ferramentas administrativas do RHEL. Dê uma olhada /bin/yum, é um script Python que começa com #!/usr/bin/python. Se você compilar o Python a partir da fonte, não faça o make installcomo root. Isso substituirá /usr/bin/python. Se você quebrar yum, pode ser difícil restaurar o seu sistema.

Para obter mais informações, consulte Como instalar o Python 3, pip, venv, virtualenv e pipenv no RHEL em developers.redhat.com . Ele abrange a instalação e o uso do Python 3 do RHSCL, o ambiente virtual do Python e várias dicas para trabalhar com coleções de software e trabalhar com o Python no RHEL.

Em poucas palavras, para instalar o Python 3.6 através do Red Hat Software Collections:

$ su -
# subscription-manager repos --enable rhel-7-server-optional-rpms \
   --enable rhel-server-rhscl-7-rpms
# yum -y install @development
# yum -y install rh-python36

# yum -y install rh-python36-numpy \
   rh-python36-scipy \ 
   rh-python36-python-tools \
   rh-python36-python-six

Para usar uma coleção de software, você deve habilitá-la:

scl enable rh-python36 bash

No entanto, se você deseja que o Python 3 seja ativado permanentemente, você pode adicionar o seguinte ao seu ~ / .bashrc e, em seguida, efetuar logout e logon novamente. Agora o Python 3 está permanentemente no seu caminho.

# Add RHSCL Python 3 to my login environment
source scl_source enable rh-python36

Nota: depois de fazer isso, digitar pythonagora fornece o Python 3.6 em vez do Python 2.7.

Veja o artigo acima para tudo isso e muito mais detalhes.

Rob T.
fonte
3

Se você deseja pacotes RHEL oficiais, pode usar o RHSCL (Red Hat Software Collections)

Mais detalhes:

Você precisa ter acesso ao Portal do Cliente Red Hat para ler os artigos completos.

daneel
fonte
// Apenas votado. Você gostaria de fazer um resumo do que se faz para usar o RHSCL para isso? Afinal, este é um site de perguntas e respostas.
Nathan Basanese
1
O artigo Como instalar o Python 3 no RHEL possui etapas atualizadas para o Python 3.6 por meio de coleções de software e muitas dicas para trabalhar com RHSCLs, Python e ambientes virtuais.
Rob T.
3

Aqui estão as etapas que eu segui para instalar o Python3:

yum install wget
wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tar.xz  
sudo tar xvf Python-3.*   
cd Python-3.* 
sudo ./configure --prefix=/opt/python3    
sudo make   
sudo make install   
sudo ln -s /opt/python3/bin/python3 /usr/bin/python3

$ /usr/bin/python3    
Python 3.6.0
Aty
fonte
2
Se você criar a partir da fonte sem instalar várias dependências de nível de desenvolvimento (SSL, bzip, etc), você perderá vários módulos que dependem de objetos compartilhados. Instalação de uma das distribuições baseadas rpm (RHSCL, EPEL, ou IUS) é uma ideia melhor
Rob T.
1

yum install python34.x86_64funciona se você tiver epel-releaseinstalado, o que esta resposta explica como, e eu confirmei que funcionouRHEL 7.3

$ cat /etc/*-release
NAME="Red Hat Enterprise Linux Server"
VERSION="7.3 (Maipo)

$ type python3
python3 is hashed (/usr/bin/python3)
anfíbio
fonte
1

Para RHEL no Amazon Linux, usando python3, eu tinha que fazer:

sudo yum instalar python34-devel

Maxime Martineau
fonte
1
No package python34-devel available.
Joe
1

Trabalho completo 36 quando o SCL não está disponível (com base na entrada do Joys)

yum install wget y
wget https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm
rpm ivh epel-*.rpm
yum install python36

sudo yum install python34-setuptools
sudo mkdir /usr/local/lib/python3.6
sudo mkdir /usr/local/lib/python3.6/site-packages

sudo easy_install-3.6 pip

Por fim, ative o ambiente ...

pyvenv-3.6 py3
source py3/bin/activate

Então python3

OSP
fonte
0

Você pode instalar o miniconda ( https://conda.io/miniconda.html ). Isso é um pouco mais do que apenas o python 3.7, mas a instalação é muito direta e simples.

curl https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O
sudo yum install bzip2
bash Miniconda3-latest-Linux-x86_64.sh

Você precisará aceitar o contrato de licença e escolher algumas opções no modo interativo (aceite os padrões). Eu acredito que também pode ser instalado silenciosamente de alguma forma.

grabantot
fonte
Não foi possível encontrar o pythoncomando real depois, ele está empacotado?
Mugen
0

Para aqueles que trabalham no AWS EC2 RHEL 7.5, ( use sudo ) habilite os repositórios necessários

yum-config-manager --enable rhui-REGION-rhel-server-optional
yum-config-manager --enable rhui-REGION-rhel-server-rhscl

Instale o Python 3.6

yum install rh-python36

Instale outras dependências

yum install rh-python36-numpy  rh-python36-scipy  rh-python36-python-tools  rh-python36-python-six
Vasu
fonte