Python >> Tutoriel Python >  >> Python

Votre guide de pyenv

Ceci est votre guide de pyenv pour changer et basculer entre les versions de Python.

pyenv vous permet de basculer entre les versions de Python. L'exécution de plusieurs versions de Python peut être un défi; pyenv facilite le changement de version de Python. C'est simple et discret, et il suit la tradition UNIX de l'outil à usage unique qui fait bien une chose.

Il est utile pour les développeurs qui ont besoin d'accéder à différentes versions du langage et ceux qui souhaitent utiliser la dernière version de Python sans mettre à niveau l'ensemble de leur système. Utilisation de pyenv vous aide à écrire un meilleur code Python.

C'est un outil puissant qui vous aide à changer la version globale de Python pour chaque projet. pyenv prend en charge la spécification de différentes versions dans vos projets. Il ne dépend pas de Python et est composé de scripts shell purs, car nous ne voulons pas dépendre de Python pour installer Python.

Dans cet article, nous aborderons pyenv et son fonctionnement, y compris :l'installation de pyenv , répertoriant les versions disponibles de Python sur votre ordinateur, définissant une version spécifique au niveau global ou local et désinstallant une ancienne version de Python de votre ordinateur. Continuez à lire !

Comment pyenv fonctionne pour changer les versions de Python

pyenv fonctionne à travers le .python-version dossier. Lorsque vous passez à une version Python (en utilisant pyenv global ou pyenv local), il crée ou met à jour ce fichier avec tous vos paramètres actuels. Il vous aide à gérer plusieurs versions de Python sur votre système.

Cela fonctionne comme un shim au niveau où les appels Python sont traduits dans l'exécutable final. pyenv utilise des injections d'exécutables shim dans le PATH variable pour déterminer quelle version utiliser pour une application donnée. Il transmet ensuite les commandes en conséquence sans intervention de l'utilisateur ni connaissance de son fonctionnement.

pyenv insère un répertoire de shims à l'avant de votre PATH variable comme suit :

$(pyenv root)/shims:/usr/local/bin:/usr/bin:/bin

Selon la documentation, les shims sont des exécutables légers qui transmettent votre commande à pyenv . Par exemple, si vous exécutez pip , votre système d'exploitation recherche PATH pour le premier fichier exécutable nommé pip . Comme nous avons mis $(pyenv root)/shims au début de PATH au-dessus, le pip du pyenv est utilisé. (Notez que les répertoires en PATH sont séparés par les deux-points.)

Comment installer pyenv pour changer les versions de Python

Il existe trois façons d'installer pyenv. Vous pouvez soit cloner le référentiel GitHub, utiliser un gestionnaire de packages ou utiliser pyenv-installer.

Avant d'aller plus loin, il est essentiel de noter que pyenv n'était initialement pas pris en charge dans le système d'exploitation Windows. Il est maintenant possible de l'installer avec pyenv-win. Si vous êtes un utilisateur Windows, vous pouvez installer pyenv dans un sous-système Linux en utilisant l'une des méthodes décrites ci-dessous.

Installer pyenv en clonant le référentiel GitHub

Passons en revue les étapes pour installer pyenv depuis le référentiel GitHub. Si vous n'êtes pas familier avec GitHub, lisez-le ici.

sudo apt-get update; sudo apt-get install make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev

Ensuite, entrez la commande suivante pour télécharger pyenv :

git clone https://github.com/pyenv/pyenv.git ~/.pyenv

Ensuite, nous devons configurer notre environnement :

$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
$ echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init --path)"\nfi' >> ~/.bashrc

Enfin, nous redémarrons le shell :

exec $SHELL

Félicitations! Vous avez installé avec succès pyenv directement depuis GitHub.

Installer pyenv avec pyenv-installer

La méthode la plus simple pour installer pyenv sur Linux et macOS consiste à utiliser pyenv-installR. Une fois les prérequis correctement installés, vous pouvez installer pyenv directement avec la commande suivante :

curl https://pyenv.run | bash

Ensuite, redémarrez votre shell :

exec $SHELL

Vous pouvez maintenant commencer à utiliser pyenv . Accédez à ses commandes en tapant pyenv dans votre terminal.

Installez pyenv avec le gestionnaire de paquets Homebrew

Sous Linux ou macOS, vous pouvez installer pyenv avec le gestionnaire de paquets Homebrew. Tout d'abord, installez Homebrew avec la commande suivante :

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Ensuite, nous exécutons les deux commandes suivantes pour ajouter Homebrew à notre $PATH :

$ echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> /home/xavier/.profile
$ eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"

Ensuite, nous entrons la commande suivante :

$ brew update
$ brew install pyenv

Comme dans la méthode précédente, l'étape suivante consiste à configurer votre environnement :

$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
$ echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init --path)"\nfi' >> ~/.bashrc

Et redémarrez le shell :

$ exec $SHELL

Bien fait! Vous l'avez installé avec succès avec Homebrew. Si nécessaire, vous pouvez accéder aux documents pyenv ici.

Voyons maintenant comment utiliser pyenv .

Comment construire n'importe quelle version de Python avec pyenv

La commande suivante affiche les versions de Python installées sur votre système. Généralement, vous n'avez qu'une seule version de Python installée :la version système.

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

Installons différentes versions de Python. Vous pouvez en choisir une dans la liste des versions Python disponibles. Nous les listons en procédant comme suit :

$ pyenv install --list

Dans la liste, nous choisissons d'installer Python 3.9.9 et Python 3.10.0 :

$ pyenv install 3.9.9
$ pyenv install 3.10.0

Voyons maintenant quelles versions de Python sont installées sur notre système :

$ pyenv versions
* system (set by /home/xavier/.pyenv/version)
3.10.0
3.9.9

L'astérisque indique que la version système de Python est active. Mais nous voyons que les versions 3.9.9 et 3.10.0 sont également installées.

Maintenant que plusieurs versions de Python sont installées, nous pouvons choisir la version à utiliser et dans quelles instances.

Comment définir la version Python avec pyenv

pyenv facilite le basculement entre les différentes versions de Python. Par exemple, pour définir Python 3.10.0 comme version globale, utilisez pyenv global comme suit :

$ pyenv global 3.10.0
system
* 3.10.0 (set by /home/xavier/.pyenv/version)
3.9.9

Vous pouvez définir la version Python de votre choix en remplaçant le numéro de version par le numéro de votre choix.

Nous pouvons utiliser pyenv pour définir une version spécifique au projet ou locale de Python. Par exemple, créons un ensemble de répertoires LearnPython avec Python 3.9.9.

~$ mkdir LearnPython
~$ cd LearnPython
~/LearnPython$ pyenv local 3.9.9
~/LearnPython$ Python -V
Python 3.9.9

Cela indique que la version de Python est définie sur 3.9.9 au niveau local. pyenv la commande locale crée un .python-version fichier avec le numéro de version dans le répertoire courant.

Lorsque pyenv essaie de déterminer quelle version de Python utiliser, il recherche ce fichier dans le dossier actuel et dans tous les dossiers parents. Lorsqu'il en trouve un, il utilise la version qui y est spécifiée. S'il atteint votre dossier personnel sans trouver aucun .python-version fichier, il utilise la version globale.

~/LearnPython$ cd ..
~$ Python -V
Python 3.10.0

Lorsque vous revenez au niveau global, Python 3.10.0 est toujours utilisé.

Si vous revenez au dossier LearnPython et exécutez Python -V , la sortie montre qu'il ne s'agit pas de la version globale de Python, mais plutôt de la version définie en dernier avec le pyenv commande locale.

Vous pouvez définir la version de Python à utiliser dans le shell actuel avec pyenv shell comme suit :

pyenv shell 3.9.9

Cette commande active la version spécifiée en définissant le PYENV_VERSION variable d'environnement et écrase tous les paramètres locaux ou globaux que vous pourriez avoir juste pour cette session de terminal. De même, vous pouvez définir n'importe quelle version de Python de votre choix dans votre environnement virtuel.

Comment localiser une version de Python

Le pyenv quelle commande permet d'identifier où se trouve l'exécutable Python actuel. Il affiche le chemin complet vers l'exécutable.

$ pyenv which python
/home/xavier/.pyenv/3.10.0/bin/python

Ensuite, explorons comment désinstaller une version de Python avec pyenv .

Comment désinstaller une version Python avec pyenv

Voyons comment désinstaller une version Python avec pyenv .

Mais d'abord, un mot d'avertissement. Parce que macOS a besoin de Python, NE PAS supprimez toutes les versions de Python des dossiers suivants :

  • /usr/bin
  • system/Library

Ces versions de Python sont installées par Apple et utilisées par macOS et d'autres logiciels. La suppression de Python de ces répertoires casse macOS et vous oblige à réinstaller le système d'exploitation sur votre ordinateur.

De plus, certains projets peuvent nécessiter des versions spécifiques de Python, vous devez donc rester prudent lors de la suppression d'une version de Python. Par exemple, NumPy a besoin de Python 3 ; sans cela, NumPy ne fonctionne pas. Ceci est un exemple soulignant l'importance d'utiliser un fichier d'exigences Python.

Pour désinstaller Python de pyenv, nous listons toutes les versions de Python. On supprime alors la version Python dont on ne veut plus avec le uninstall commande.

Listons les versions de Python :

$ pyenv versions
* system (set by PYENV_VERSION environment variable)
3.10.0
3.9.9

Désinstallons les versions de Python dont nous ne voulons plus :

$ pyenv uninstall 3.10.0
$ pyenv uninstall 3.9.9

Et le résultat final :

$ pyenv versions
* system (set by PYENV_VERSION environment variable)

Vous savez maintenant comment installer et utiliser pyenv pour changer de version de Python ou basculer entre les versions de Python. J'espère que vous avez apprécié ce guide.

Votre prochaine étape consiste à améliorer vos compétences en Python. Découvrez notre piste de programmation Python ici. Il s'agit d'un cours conçu pour les analystes de données qui souhaitent améliorer leurs compétences en Python et augmenter leur valeur marchande.

Consultez également ces autres ressources utiles, telles que des idées pour mettre en pratique vos compétences Python, notre liste organisée des meilleures discussions Python et notre liste des meilleurs éditeurs de code Python.

Bon codage !