CentOS, en tant que version open source de Red Hat, est apprécié pour sa stabilité et sa sécurité par de nombreuses entreprises techniques. Cependant, CentOS 7.5 est livré par défaut avec Python 2, ce qui empêche l'utilisation de nombreux packages Python 3 plus récents. Pour les développeurs qui souhaitent utiliser les dernières technologies et bénéficier d'une meilleure extensibilité, il est nécessaire de configurer un environnement Python 3.6.6 sur CentOS 7.5.
Prérequis
Avant d'installer Python 3.6.6, assurez-vous d'avoir les outils nécessaires :
yum install wget
yum groupinstall 'Development Tools'
yum install -y ncurses-libs zlib-devel mysql-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
Téléchargement de Python
Téléchargez la version souhaitée depuis le site officiel de Python :
wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tar.xz
Préparation de l'installation
Placez l'archive téléchargée dans le répertoire /usr/local et extrayez-la :
tar -xf Python-3.6.6.tar.xz
Créez un nouveau répertoire pour Python 3.6.6 et déplacez les fichiers extraits :
mkdir -p /usr/local/python3
mv Python-3.6.6 /usr/local/python3/
cd /usr/local/python3/Python-3.6.6
Compilation et installation
Configurez l'installation avec l'option prefix pour spécifier le répertoire d'installation :
./configure --prefix=/usr/local/python3 --enable-optimizations
make
make install
Configuration des liens symboliques
Avant de créer de nouveaux liens symboliques, renommez l'existant pour éviter les conflits :
mv /usr/bin/python /usr/bin/python_org
Créez maintenant les liens symboliques nécessaires :
ln -s /usr/local/python3/bin/python3 /usr/bin/python
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip
Correction de la compatibilité avec yum
Modifiez les scripts qui dépendent de Python 2 pour éviter les erreurs avec yum :
cd /usr/bin
ls yum*
Modifiez chaque fichier trouvé en changeant la première ligne :
sed -i 's|#!/usr/bin/python|#!/usr/bin/python2|g' yum*
De même, modifiez le fichier urlgrabber-ext-down :
sed -i 's|#! /usr/bin/python|#! /usr/bin/python2|g' /usr/libexec/urlgrabber-ext-down
Et les fichiers liés à firewall-cmd :
sed -i 's|#! /usr/bin/python|#! /usr/bin/python2|g' /usr/sbin/firewalld /usr/bin/firewall-cmd /usr/bin/firewall-offline-cmd
Mise à jour de pip
Enfin, mettez à jour pip :
python -m pip install --upgrade pip
Vérification
Pour vérifier l'installation, utilisez simplement python pour accéder à Python 3 et python2 pour Python 2.