GNU/Linux >> Tutoriels Linux >  >> Linux

Comment gérer plusieurs versions de Python avec Pyenv sous Linux

Vous êtes un programmeur qui souhaite tester votre code Python sur plusieurs environnements Python différents. Que feriez-vous? Installez une version python spécifique et testez votre code, puis désinstallez cette version et installez à nouveau une autre version différente et testez le code ? Non attends! Ce n'est pas inutile. Rencontrez Pyenv , un utilitaire de ligne de commande pour gérer simultanément plusieurs versions de Python. Cela a rendu la gestion des versions de python plus facile que jamais. Il est utilisé pour installer, désinstaller et basculer vers plusieurs versions différentes de Python.

Pyenv vous permet de modifier la version globale de Python par utilisateur, de prendre en charge les versions Python par projet, de remplacer la version Python par une variable d'environnement et de rechercher des commandes à partir de plusieurs versions de Python à la fois. Pyenv peut être utilisé pour tester votre code dans plusieurs environnements Python. Dans ce tutoriel, nous verrons comment installer et utiliser Pyenv sur GNU/Linux.

Installer Pyenv sur Linux

Tout d'abord, installez les packages suivants pour éviter les problèmes de construction courants.

Pour les systèmes basés sur Debian :

$ sudo apt-get install -y make build-essential git libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev

Pour les systèmes basés sur RPM :

$ sudo yum install zlib-devel bzip2 bzip2-devel git readline-devel sqlite sqlite-devel openssl-devel xz xz-devel

Pour SUSE/openSUSE :

$ sudo zypper in zlib-devel bzip2 libbz2-devel git readline-devel sqlite3 sqlite3-devel libopenssl-devel xz xz-devel

Nous venons d'installer les prérequis nécessaires. Il est temps d'installer Pyenv. La méthode officielle et recommandée pour installer Pyenv consiste à utiliser le script pyenv-installer. Tout ce que vous avez à faire est d'exécuter la commande suivante dans votre shell pour installer pyenv.

$ curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash

À la fin de l'installation, le programme d'installation vous demandera d'ajouter Pyenv à votre PATH. Dans mon cas, j'ai ajouté les lignes suivantes dans mon ~/.bash_profile fichier.

 export PATH="/home/ostechnix/.pyenv/bin:$PATH"
 eval "$(pyenv init -)"
 eval "$(pyenv virtualenv-init -)"

Exécutez la commande ci-dessous pour appliquer les modifications.

$ source ~/.bash_profile

Pyenv est prêt à l'emploi. Voyons maintenant comment gérer différentes versions de Python à l'aide de Pyenv.

Gérer plusieurs versions de Python avec Pyenv sous Linux

Voyons d'abord toutes les versions disponibles. Pour cela, lancez simplement la commande suivante :

$ pyenv install -l

Ou,

$ pyenv install --list

Vous devriez obtenir quelque chose comme ci-dessous.

Available versions:
 2.1.3
 2.2.3
 2.3.7
 2.4
 2.4.1
 .
 .
 .
 3.6.2
 3.6.3
 3.6.4
 3.7.0b1
 3.7-dev
 3.8-dev
[...]

Pour répertorier les versions de Python actuellement installées :

$ pyenv versions
* system (set by /home/ostechnix/.pyenv/version)

Par défaut, Pyenv utilise notre python par défaut du système. Ici * indique par défaut.

Installer Python

Disons que vous avez besoin des versions Python 2.7.14 et 3.6.4 sur votre système.

Pour ce faire, exécutez simplement :

$ pyenv install 2.7.14

Pour installer Python 3.6.4, exécutez :

$ pyenv install 3.6.4

Vous n'avez pas besoin des droits sudo. Toutes les versions de Python seront installées dans un répertoire séparé dans le répertoire racine pyenv de votre $HOME. Le répertoire racine pyenv par défaut est ~/.pyenv . Par exemple, Python 2.7.14 est installé sous /home/ostechnix/.pyenv/versions/2.7.14 dans mon cas.

$ ls /home/ostechnix/.pyenv/versions/
2.7.14 3.6.4

Répertoriez maintenant les versions de Python installées.

$ pyenv versions
* system (set by /home/ostechnix/.pyenv/version)
 2.7.14
 3.6.4

Basculer entre différentes versions de Python

Nous pouvons passer à différents python de deux manières, globalement et localement.

Voyons la version globale actuelle de Python en utilisant la commande :

$ pyenv global
system

Il n'y en a pas. Mon système utilise toujours le python par défaut du système. Passons à une autre version de Python, par exemple 2.7.14 .

$ pyenv global 2.7.14

Vérifiez maintenant la version Python par défaut :

$ pyenv versions
 system
* 2.7.14 (set by /home/ostechnix/.pyenv/version)
 3.6.4

Avez-vous remarqué l'étoile (*) ? Oui, 2.7.14 est notre version Python globale par défaut.

Vous pouvez également spécifier plusieurs versions en tant que Python global à la fois. Disons que vous avez deux versions de 2.7.14 et 3.6.4. Si vous préférez 2.7.14 à 3.6.4, exécutez simplement :

$ pyenv global 2.7.14 3.6.4

Vérifiez maintenant les versions globales.

$ pyenv versions
 system
* 2.7.14 (set by /home/ostechnix/.pyenv/version)
* 3.6.4 (set by /home/ostechnix/.pyenv/version)

Désormais, 2.7.14 et 3.6.4 sont les versions globales par défaut.

Nous pouvons définir une version locale de Python spécifique à l'application (par projet) en écrivant le nom de la version dans un .python-version fichier dans le répertoire courant. Veuillez noter que la version locale remplace la version globale et peut être remplacée elle-même en définissant la variable d'environnement PYENV_VERSION ou avec la commande shell pyenv.

Basculez vers votre répertoire de projet :

$ cd myproject/

Passons à 3.6.4.

$ pyenv local 3.6.4

Vérifiez la version locale actuelle de Python.

$ pyenv versions
 system
 2.7.14
* 3.6.4 (set by /home/ostechnix/myproject/.python-version)

Configurer l'environnement virtuel

Pour configurer un environnement virtuel avec une version Python spécifique, faites :

$ pyenv virtualenv 3.6.4 myenv

Pour le rendre disponible dans le monde entier, exécutez :

$ pyenv global myenv
(myenv) [email protected]:~$

Vous êtes maintenant dans votre environnement virtuel. Fais ce que tu veux. Installez, supprimez les applications python en utilisant pip et autres. Tout est à vous.

Si vous souhaitez configurer un environnement virtuel local (par répertoire) :

CD dans le répertoire de votre projet et exécutez :

$ pyenv local mylocalenv

Pour supprimer un environnement virtuel, faites simplement :

$ pyenv uninstall myenv
pyenv-virtualenv: remove /home/ostechnix/.pyenv/versions/3.6.4/envs/myenv? y

Suppression d'une version spécifique de Python

Pour désinstaller une version spécifique de Python, par exemple 3.6.4 :

$ pyenv uninstall 3.6.4

Sinon, supprimez simplement le répertoire de la version que vous souhaitez supprimer.

Vérifiez les versions Python actuellement installées :

$ pyenv versions

Pour plus de détails, lisez la section d'aide en exécutant la commande suivante :

$ pyenv

Vérifiez également "pyenv help " pour plus d'informations sur une commande spécifique. Par exemple, vous pouvez afficher les informations de la commande "installer" comme ci-dessous.

$ pyenv help install

Et c'est tout. Comme vous pouvez le voir, gérer plusieurs versions de Python est assez simple ! Si vous êtes un programmeur Python, Pyenv est un outil essentiel à conserver dans votre arsenal.

Lire connexe :

  • SDKMAN - Un outil CLI pour gérer facilement plusieurs kits de développement logiciel
  • Comment gérer plusieurs versions de Java avec jEnv sous Linux

Linux
  1. Comment gérer les capacités des fichiers Linux

  2. Comment gérer les versions de NodeJS avec n dans Ubuntu 20.04

  3. Comment gérer les utilisateurs avec useradd sous Linux

  4. Comment installer / basculer entre plusieurs versions de Java avec SDKMAN

  5. Deux versions de python sous Linux. comment faire de 2.7 la valeur par défaut

Comment gérer le stockage sous Linux avec LVM

Comment gérer vos mots de passe avec Enpass sous Linux

Comment gérer plusieurs versions de Java avec jEnv sous Linux

Comment gérer les versions de Nodejs avec n sous Linux

Comment gérer à distance un serveur Linux avec SSH

Comment gérer le stockage avec GParted Linux