web-dev-qa-db-fra.com

Installation de Python 3 sur RHEL

J'essaie d'installer python3 sur RHEL en procédant comme suit:

yum search python3

Qui a retourné No matches found for: python3

Suivi par:

yum search python

Aucun des résultats de la recherche ne contenait python3. Que devrais-je essayer ensuite?

98
Chander Shivdasani

Il est facile de l'installer manuellement:

  1. Télécharger (il peut y avoir de nouvelles versions sur Python.org ): 

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

    $ tar xf Python-3.* 
    $ cd Python-3.*
    
  3. Préparer la compilation

    $ ./configure
    
  4. Construire

    $ make
    
  5. Installer

    $ make install
    

    OU si vous ne voulez pas écraser l'exécutable python (plus sûr, au moins sur certaines distributions, yum a besoin de python pour être 2.x, comme pour RHEL6) - vous pouvez installer python3.* en tant qu'instance simultanée avec la valeur système par défaut avec altinstall :

    $ make altinstall
    

Maintenant, si vous voulez un autre répertoire d’installation, vous pouvez passer --prefix à la commande configure.

Exemple: pour 'installer' Python dans/opt/local, ajoutez simplement --prefix=/opt/local

Après l'étape make install: Pour utiliser votre nouvelle installation Python, il se peut que vous deviez encore ajouter le [préfixe]/bin au $PATH et le préfixe/lib au $LD_LIBRARY_PATH (en fonction du --prefix que vous avez transmis).

156
gecco

L'installation à partir de RPM est généralement préférable, car:

  • vous pouvez installer et uninstall (correctement) python3.
  • le temps d'installation est beaucoup plus rapide. Si vous travaillez dans un environnement cloud avec plusieurs ordinateurs virtuels, la compilation de python3 sur chaque ordinateur virtuel n'est pas acceptable.

Solution 1: référentiels Red Hat et EPEL

Red Hat a ajouté Python 3.4 pour CentOS 6 et 7 via le référentiel EPEL.

Malheureusement:

  • pip3 n'est fourni dans aucun RPM. Vous devez installer manuellement (voir ci-dessous).
  • pyvenv est en panne et ne fonctionne pas. Vous devez utiliser virtualenv.

[EPEL] Comment installer Python 3.4 sur CentOS 6 & 7

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

# I guess you would like to install virtualenv or virtualenvwrapper
Sudo pip3 install virtualenv
Sudo pip3 install virtualenvwrapper

Si vous souhaitez utiliser pyvenv, vous pouvez procéder comme suit pour installer pip3 dans votre virtualenv:

pyvenv --without-pip my_env
curl https://bootstrap.pypa.io/get-pip.py | my_env/bin/python

Mais si vous voulez l'avoir immédiatement, vous pouvez ajouter cette fonction bash (alias) dans votre .bashrc:

pyvenv() { /usr/bin/pyvenv --without-pip $@; for env in $@; do curl https://bootstrap.pypa.io/get-pip.py | "$env/bin/python"; done; }

Solution 2: référentiels IUS Community

La communauté IUS fournit des packages mis à jour pour RHEL & CentOS. Les gars derrière sont de Rackspace, donc je pense qu’ils sont assez dignes de confiance ...

https://ius.io/

Vérifiez le bon repo pour vous ici:

https://ius.io/GettingStarted/

[IUS] Comment installer Python 3.5 sur CentOS 6

Sudo yum install -y https://centos6.iuscommunity.org/ius-release.rpm
Sudo yum install -y python35u python35u-pip

# I guess you would like to install virtualenv or virtualenvwrapper
Sudo pip3.5 install virtualenv
Sudo pip3.5 install virtualenvwrapper

Remarque: vous disposez de pyvenv-3.5 prêt à l'emploi si vous ne souhaitez pas utiliser virtualenv.

[IUS] Comment installer Python 3.5 sur CentOS 7

Sudo yum install -y https://centos7.iuscommunity.org/ius-release.rpm
Sudo yum install -y python35u python35u-pip

# I guess you would like to install virtualenv or virtualenvwrapper
Sudo pip3.5 install virtualenv
Sudo pip3.5 install virtualenvwrapper

Remarque: vous disposez de pyvenv-3.5 prêt à l'emploi si vous ne souhaitez pas utiliser virtualenv.

200
Samuel Phan

En plus de la réponse de gecco, je changerais l'étape 3 en:

./configure

à:

./configure --prefix=/opt/python3

Ensuite, après l'installation, vous pouvez également:

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

C'est pour s'assurer que l'installation ne sera pas en conflit avec python installé avec yum.

Voir les explications que j'ai trouvées sur Internet:

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

30
rsc

Vous pouvez télécharger un RPM source et un RPM binaire pour RHEL6/CentOS6 à partir de ici

Ceci est un backport du dernier développement de Fedora Source à rpm vers RHEL6/CentOS6

9
Florian La Roche

Utilisez les dépôts 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

(Cette dernière commande devra être exécutée chaque fois que vous souhaitez utiliser python27 plutôt que la valeur par défaut du système.)

9
Paul Draper

Outre Python 2.7 et 3.3, Red Hat Software Collections inclut désormais Python 3.4, qui fonctionnent tous à la fois sur RHEL 6 et 7.

Les documents RHSCL 2.0 sont sur https://access.redhat.com/documentation/en-US/Red_Hat_Software_Collections/

Plus beaucoup d'articles sur developerblog.redhat.com.

modifier

Suivez ces instructions pour installer Python 3.4 sur 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
8
Mike Guerette

Python3 a récemment été ajouté à EPEL7 en tant que Python34.

Des efforts sont en cours (actuellement) pour élaborer des directives de packaging sur la manière de conditionner les éléments pour Python3 dans EPEL7.

Voir https://bugzilla.redhat.com/show_bug.cgi?id=1219411
et https://lists.fedoraproject.org/pipermail/python-devel/2015-July/000721.html

7
rkuska

J'avais le même problème en utilisant le python 2.7. Suivez les étapes ci-dessous pour passer avec succès à la version 3.6 . Vous pouvez aussi essayer celui-ci.

  1. Voir avant de mettre à jour la version est 2.x

    python --version
    Python 2.7.5
    
  2. Utilisez la commande ci-dessous pour mettre à jour votre python vers la version 3.x.

    yum install python3x

    remplacez x par le numéro de version souhaité.

    c'est-à-dire pour installer Python 3.6 execute

    yum install python36
    
  3. Après cela si vous voulez définir ce python pour votre version par défaut, dans bashrc file add 

    vi ~/.bashrc 

    alias python='python3.6'
    
  4. exécuter la commande bash pour appliquer les paramètres

    bash 
    
  5. Maintenant, vous pouvez voir la version ci-dessous

    python --version
    Python 3.6.3
    
5
IRSHAD

Trois étapes pour utiliser Python 3.5 de Collections de logiciels :

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

Notez que Sudo n'est pas nécessaire pour la dernière commande. Nous pouvons maintenant voir que python 3 est la valeur par défaut pour le shell actuel:

python --version
Python 3.5.1

Ignorez simplement la dernière commande si vous préférez utiliser Python 2 par défaut pour le shell actuel.

Supposons maintenant que vos scripts Python 3 génèrent une erreur telle que /usr/bin/env: python3: No such file or directory. En effet, l'installation est généralement effectuée sur un chemin inhabituel:

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

Ce qui précède serait normalement un lien symbolique. Si vous souhaitez que python3 soit automatiquement ajouté à $PATH pour tous les utilisateurs au démarrage, vous pouvez, pour ce faire, ajouter un fichier tel que:

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

Ce qui aurait quelque chose comme:

#!/bin/bash

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

Et maintenant, après un redémarrage, si nous le faisons

python3 --version

Cela devrait juste marcher. Une exception serait un utilisateur généré automatiquement tel que "jenkins" sur un serveur Jenkins qui n'a pas de shell. Dans ce cas, ajouter manuellement le chemin d'accès à $PATH dans les scripts serait une solution.

Enfin, si vous utilisez Sudo pip3 pour installer des paquetages, mais que cela signifie que pip3 est introuvable, il se peut que vous ayez un chemin_sécurisé dans / etc/sudoers. Vérifier avec Sudo visudo devrait confirmer cela. Pour utiliser temporairement la norme CHEMIN lorsque vous exécutez des commandes, vous pouvez le faire, par exemple:

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

Voir this question pour plus de détails.

NOTE: Il existe une nouvelle version de Python 3.6, Software Collections, mais je ne le recommanderais pas pour l'instant, car j'avais de gros maux de tête lorsque j'essayais d'installer Pycurl. Pour Python 3.5, ce n’est pas un problème car je viens de faire Sudo yum install sclo-python35-python-pycurl, qui a fonctionné immédiatement.

4
Nagev

Je vois toutes les réponses comme demandant soit de compiler python3 à partir de code, soit d’installer le paquetage binaire RPM. Voici une autre réponse pour activer EPEL (Extra Packages for Enterprise Linux), puis installer python à l’aide de yum. Étapes pour 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

Voir aussi link

4
Jay Rajput

Si vous êtes sur RHEL et que vous voulez un système Python supporté par Red Hat, utilisez les collections Red Hat Software (RHSCL). Les packages EPEL et IUS ne sont pas pris en charge par Red Hat. De nombreuses réponses ci-dessus concernent également les collections de logiciels CentOS. Bien que vous puissiez les installer, ils ne sont pas les packages pris en charge par Red Hat pour RHEL. 

En outre, la réponse la plus votée donne de mauvais conseils - Sur RHEL, vous ne souhaitez pas modifier /usr/bin/python, /usr/bin/python2 car vous risquez de casser yum et d'autres outils d'administration RHEL. Regardez /bin/yum, il s’agit d’un script Python commençant par #!/usr/bin/python. Si vous compilez Python à partir des sources, ne faites pas un make install en tant que root. Cela écrasera /usr/bin/python. Si vous cassez yum, il peut être difficile de restaurer votre système.

Pour plus d'informations, voir Comment installer Python 3, pip, venv, virtualenv et pipenv sur RHEL on developers.redhat.com . Il couvre l'installation et l'utilisation de Python 3 à partir de RHSCL, à l'aide d'environnements virtuels Python, ainsi que de plusieurs astuces pour l'utilisation de collections de logiciels et l'utilisation de Python sur RHEL.

En résumé, pour installer Python 3.6 à l’aide de 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

Pour utiliser une collection de logiciels, vous devez l'activer:

scl enable rh-python36 bash

Toutefois, si vous souhaitez activer Python 3 de manière permanente, vous pouvez ajouter les éléments suivants à votre ~/.bashrc, puis vous déconnecter et vous reconnecter. Maintenant, Python 3 est en permanence sur votre chemin.

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

Remarque: une fois que vous avez fait cela, taper python vous donne maintenant Python 3.6 au lieu de Python 2.7.

Voir l'article ci-dessus pour tout cela et beaucoup plus de détails. 

3
Rob T.

Voici les étapes que j'ai suivies pour installer 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
3
Aty

Si vous voulez des packages RHEL officiels, vous pouvez utiliser RHSCL (Red Hat Software Collections).

Plus de détails:

Vous devez avoir accès au portail client Red Hat pour pouvoir lire des articles complets.

3
daneel

Pour RHEL sur Amazon Linux, en utilisant python3, je devais faire:

Sudo yum install python34-devel

1
Maxime Martineau

yum install python34.x86_64 fonctionne si vous avez installé epel-release, qui cette réponse explique comment, et j'ai confirmé que cela fonctionnait avec RHEL 7.3

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

$ type python3
python3 is hashed (/usr/bin/python3)
1
amphibient

Plein de travail 36 quand SCL n'est pas disponible (basé sur l'entrée 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

Enfin activer l'environnement ...

pyvenv-3.6 py3
source py3/bin/activate

Puis python3

1
OSP

Vous pouvez installer miniconda ( https://conda.io/miniconda.html ). C'est un peu plus que simplement Python 3.7, mais l'installation est très simple.

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

Vous devrez accepter le contrat de licence et choisir certaines options en mode interactif (accepter les valeurs par défaut) ... Je pense qu'il peut également être installé en mode silencieux.

0
grabantot

Pour ceux qui travaillent sur AWS EC2 RHEL 7.5, (tilisez Sudo), activez le repo requis.

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

Installez Python 3.6

yum install rh-python36

Installer d'autres dépendances

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