Python est l'un des langages de programmation les plus populaires utilisés aujourd'hui. De nombreux systèmes Linux sont fournis avec Python préinstallé, mais il s'agit souvent d'une ancienne version comme Python 2.7. Au fil des ans, de nouvelles versions de Python comme 3.8, 3.7, etc. ont été publiées avec de nouvelles fonctionnalités et améliorations importantes.
Cependant, cela peut poser problème si vous avez besoin d'une version spécifique de Python pour vos applications ou scripts. Par exemple, certaines applications peuvent nécessiter Python 2.7 tandis que d'autres ont besoin de Python 3.8.
La solution consiste à installer plusieurs versions de Python côte à côte sur votre système Linux. Cela vous permet de basculer entre les différentes versions pour assurer la compatibilité avec divers logiciels.
Dans ce guide complet, nous couvrirons les étapes pour installer plusieurs versions de Python sur CentOS et Ubuntu Linux. Les instructions fonctionnent pour toutes les versions de Python, y compris les dernières versions 3.x et 2.x.
Conditions préalables
Avant de commencer, assurez-vous que votre système est à jour avec les derniers paquets :
# CentOS/RHEL
$ sudo yum update
# Ubuntu/Debian
$ sudo apt update
$ sudo apt upgrade
Les versions 2.x et 3.x de Python peuvent coexister pacifiquement sur le même système. Nous devons simplement nous assurer qu'elles sont installées dans des répertoires séparés.
Les exemples ci-dessous utiliseront Python 3.8 et 2.7, mais vous pouvez substituer n'importe quelle version que vous souhaitez.
Installation de Python sur CentOS
Les versions récentes de CentOS et RHEL sont livrées avec Python 2 installé par défaut. Nous utiliserons le référentiel Software Collections (SCL) pour installer d'autres versions de Python si nécessaire.
Étape 1 – Installer les outils de développement
Nous avons besoin de git et des outils de développement pour générer Python à partir des sources :
$ sudo yum groupinstall "Development Tools"
$ sudo yum install git
Étape 2 – Installer Python 3 avec SCL
Tout d'abord, activez le référentiel SCL :
$ sudo yum install centos-release-scl
Maintenant, installez Python 3.8 :
$ sudo yum install rh-python38
Ceci installera Python 3.8 dans le répertoire /opt/rh/rh-python38.
Pour utiliser cette version de Python, nous devons l'activer avec :
$ scl enable rh-python38 bash
Vérifiez que vous avez maintenant Python 3.8 :
$ python --version
Quittez pour revenir à Python 2.7 du système avec :
$ exit
Étape 3 – Installer Python 2 à partir d'IUS
Le référentiel IUS fournit des versions mises à jour de Python 2.x pour CentOS.
Activez IUS avec :
$ sudo yum install https://repo.ius.io/ius-release-el7.rpm
Maintenant, installez Python 2.7 :
$ sudo yum install python27
Vérifiez votre version de Python 2.7 :
$ python2.7 --version
Nous avons maintenant Python 3.8 et Python 2.7 installés sur CentOS !
Installation de Python sur Ubuntu
Ubuntu est livré avec Python 3 installé par défaut. Nous utiliserons le PPA deadsnakes pour installer d'autres versions de Python.
Étape 1 – Installer les outils de développement
Nous avons besoin d'outils de construction et d'autres dépendances pour compiler Python :
$ sudo apt update
$ sudo apt install build-essential libssl-dev libffi-dev python3-dev
Étape 2 – Installer les versions de Python
Ajoutez le PPA deadsnakes qui fournit plusieurs versions de Python :
$ sudo add-apt-repository ppa:deadsnakes/ppa
Maintenant, installez Python 3.8 et 2.7 :
$ sudo apt install python3.8 python2.7
Vérifiez que vous avez plusieurs versions de Python :
$ python3.8 --version
$ python2.7 --version
Nous avons maintenant Python 3.8 et 2.7 prêts à l'emploi !
Utilisation des environnements virtuels
Il est recommandé de créer des environnements virtuels pour vos projets plutôt que d'utiliser Python système. Cela permet de séparer les dépendances entre les applications.
Pour créer un environnement virtuel Python 3 :
$ python3.8 -m venv myprojectenv
Activez-le avec :
$ source myprojectenv/bin/activate
Lorsque vous avez terminé, désactivez l'environnement :
$ deactivate
Des environnements virtuels peuvent également être créés pour Python 2 :
$ python2.7 -m virtualenv myprojectenv
Cela vous permet de basculer facilement entre les versions de Python par projet, sans affecter l'ensemble du système.
Définir la version Python par défaut
Après avoir installé plusieurs versions de Python,
python peut encore faire référence au Python système.
Pour changer la valeur par défaut pour tous les utilisateurs, ajustez les liens symboliques :
$ sudo rm /usr/bin/python
$ sudo ln -s /usr/bin/python3.8 /usr/bin/python
Maintenant,
python exécutera Python 3.8.
Pour revenir à Python 2 :
$ sudo rm /usr/bin/python
$ sudo ln -s /usr/bin/python2.7 /usr/bin/python
Pour un seul utilisateur, les liens symboliques peuvent être ajustés dans ~/.local/bin à la place :
$ rm ~/.local/bin/python
$ ln -s /usr/bin/python3.8 ~/.local/bin/python
Cela remplacera le défaut du système uniquement pour cet utilisateur.
Conclusion
Dans ce guide, nous avons couvert l'installation et la gestion de multiples versions de Python sur CentOS et Ubuntu. Voici un bref récapitulatif des points clés :
- Utilisez les dépôts SCL et IUS sur CentOS pour installer des versions Python supplémentaires.
- Ajoutez le PPA deadsnakes sur Ubuntu pour plusieurs versions de Python.
- Créez des environnements virtuels pour isoler les dépendances entre les projets Python.
- Ajustez les liens symboliques pour changer la version
pythonpar défaut globalement ou par utilisateur.
Vous avez maintenant le pouvoir d'utiliser la bonne version de Python pour vos différentes applications et scripts sur Linux ! La possibilité d'installer plusieurs versions côte à côte offre compatibilité et flexibilité.