Recherche de site Web

Pyenv - Installer plusieurs versions de Python pour un projet spécifique


Gérer plusieurs versions de Python sur un système Linux n'est pas une tâche facile, surtout pour les débutants. Parfois, la situation est encore pire lorsque vous souhaitez développer et exécuter plusieurs projets avec différentes versions de Python sur le même serveur. Cependant, cela ne devrait pas être le cas si vous utilisez pyenv.

Lire aussi : Comment installer la dernière version de Python 3.6 sous Linux

Qu’est-ce que Pyenv ?

Pyenv est un outil simple, puissant et multiplateforme permettant de gérer plusieurs versions de Python sur les systèmes Linux, utilisé pour.

  • Changement de version globale de Python pour chaque utilisateur.
  • définir la version locale de Python par projet.
  • Gestion des environnements virtuels créés par anaconda ou virtualenv.
  • Remplacement de la version Python par une variable d'environnement.
  • Recherche de commandes à partir de plusieurs versions de Python et plus encore.

Comment fonctionne pyenv ?

Habituellement, une seule version par défaut de Python est utilisée pour exécuter toutes vos applications, sauf si vous spécifiez explicitement la version que vous souhaitez utiliser dans l'application. Mais pyenv implémente un concept simple consistant à utiliser des shims (exécutables légers) pour transmettre votre commande à la bonne version de Python que vous souhaitez utiliser, lorsque plusieurs versions sont installées.

Ces shims sont insérés par pyenv dans un répertoire devant votre PATH. Ainsi, lorsque vous exécutez une commande Python, elle est interceptée par le shim approprié et transmise à pyenv, qui établit ensuite la version Python spécifiée par votre application et transmet vos commandes ainsi que l'installation légitime de Python. Ceci est un aperçu du fonctionnement de pyenv.

Dans cet article, nous allons montrer comment installer la dernière version de pyenv sous Linux. Nous démontrerons également les trois premiers cas d’utilisation répertoriés ci-dessus.

Comment installer Pyenv sous Linux

1. Installez d'abord tous les packages requis pour installer différentes versions de Python à partir des sources à l'aide de la commande suivante sur votre distribution Linux respective.

------------ On Debian/Ubuntu/Linux Mint ------------ 
sudo apt install curl git-core gcc make zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libssl-dev

------------ On CentOS/RHEL ------------
yum -y install epel-release
yum install git gcc zlib-devel bzip2-devel readline-devel sqlite-devel openssl-devel

------------ On Fedora 22+ ------------
yum install git gcc zlib-devel bzip2-devel readline-devel sqlite-devel openssl-devel

2. Ensuite, récupérez la dernière arborescence source pyenv de son référentiel Github et installez-la dans le chemin $HOME/.pyenv à l'aide de la commande suivante.

git clone https://github.com/pyenv/pyenv.git $HOME/.pyenv

3. Vous devez maintenant définir la variable d'environnement PYENV_ROOT pour qu'elle pointe vers le chemin où vous avez installé pyenv et l'exporter. Ajoutez ensuite $PYENV_ROOT/bin à votre PATH pour exécuter l'utilitaire de ligne de commande pyenv comme n'importe quelle autre commande système.

Vous devez également activer les shims ainsi que la complétion automatique en ajoutant le pyenv init à votre shell. Faites toutes ces choses dans votre fichier de démarrage bash $HOME/.bashrc, comme indiqué.

vim $HOME/.bashrc 

Copiez et collez les lignes suivantes à la fin de ce fichier.

## pyenv configs
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"

if command -v pyenv 1>/dev/null 2>&1; then
  eval "$(pyenv init -)"
fi

4. Une fois que vous avez effectué les modifications ci-dessus, vous pouvez soit sourcer le fichier $HOME/.bashrc, soit redémarrer le shell comme indiqué.

source $HOME/.bashrc
OR
exec "$SHELL"

Comment installer plusieurs versions de Python sous Linux

5. À ce stade, vous devriez être prêt à commencer à utiliser pyenv. Avant d'installer une version de Python, vous pouvez afficher toutes les versions disponibles avec cette commande.


pyenv install -l

6. Vous pouvez désormais installer plusieurs versions de Python via pyenv, par exemple.

pyenv install 3.6.4
pyenv install 3.6.5

7. Pour répertorier toutes les versions de Python disponibles pour pyenv, exécutez la commande suivante. Cela affichera uniquement les versions installées via pyenv lui-même.

pyenv versions

8. Vous pouvez vérifier la version globale de Python avec la commande suivante. À ce stade, la version par défaut devrait être celle définie par le système, et non pyenv.

pyenv global

Vous pouvez définir la version globale de Python à l'aide de la commande pyenv.

pyenv global 3.6.5
pyenv global

9. Vous pouvez désormais définir la version locale de Python pour chaque projet. Par exemple, si vous avez un projet situé dans $HOME/python_projects/test, vous pouvez définir la version Python à l'aide de la commande suivante.

cd python_projects/test
pyenv local 3.6.5
pyenv version		#view local python version for a specific project 
OR
pyenv versions

10. Pyenv gère les environnements virtuels via le plugin pyenv-virtualenv qui automatise la gestion des environnements virtualenvs et conda pour Python sur Linux et autres systèmes de type UNIX.

Vous pouvez commencer par installer ce plugin à l'aide des commandes suivantes.

git clone https://github.com/yyuu/pyenv-virtualenv.git   $HOME/.pyenv/plugins/pyenv-virtualenv
source $HOME/.bashrc

11. Nous allons maintenant créer un environnement virtuel de test appelé venv_project1 sous un projet appelé project1 comme suit.

cd python_projects
mkdir project1
cd project1
pyenv virtualenv 3.6.5 venv_project1

12. Désormais, lorsque vous répertoriez toutes les versions de Python, vos environnements virtuels ainsi que leurs versions Python locales doivent également être répertoriés, comme indiqué dans la capture d'écran.

pyenv versions

13. Pour activer un virtualenv, par exemple venv_project1, tapez la commande suivante.

pyenv activate venv_project1

Remarque : vous pouvez recevoir le message ci-dessous lors de la première utilisation de la dernière version du plugin pyenv-virtualenv.

pyenv-virtualenv: prompt changing will be removed from future release. configure `export PYENV_VIRTUALENV_DISABLE_PROMPT=1' to simulate the behavior.

Ajoutez la ligne export PYENV_VIRTUALENV_DISABLE_PROMPT=1 dans votre fichier $HOME/.bashrc, où vous avez ajouté d'autres configurations pyenv, et sourcez le fichier à simuler. le comportement étant mis en avant.

14. Pour désactiver le virtualenv activé, exécutez cette commande.

pyenv deactivate

Pour plus d'informations, vous pouvez lister toutes les commandes pyenv à l'aide de la commande suivante.

pyenv commands

Pour plus d'informations, accédez au référentiel pyenv Github : https://github.com/pyenv/pyenv

Lire aussi : Comment installer plusieurs versions de PHP pour plusieurs sites Web

Utiliser pyenv est vraiment aussi simple que cela. Dans ce guide, nous avons montré comment l'installer, ainsi que certains de ses cas d'utilisation pour gérer plusieurs versions de Python sur un système Linux. Utilisez le formulaire de commentaires ci-dessous pour poser des questions ou partager vos réflexions sur cet outil.