[toc]
Pyenv va nous permettre d'utiliser plusieurs versions concurrentes de python sur notre système Linux sans modifier la version par défaut :
# Installation
## installation des packages nécessaires
- Pour que pyenv puisse fonctionner, il a besoin de certains packages, utilisez cette ligne pour les installer :
```console
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
```
## téléchargement de pyenv
- Nous devons télécharger pyenv directement depuis le GitHub dans un répertoire accessible à tous.
- déplacez vous dans le répertoire **/usr/local/** et utilisez la commande suivante :
```console
sudo git clone https://github.com/pyenv/pyenv.git /usr/local/pyenv
```
- lorsque vous voudrez mettre à jour pyenv, retournez dans **/usr/local/pyenv** et utilisez la commande git :
```console
git pull
```
## Ajouter pyenv au bash
Afin de rendre facilement accessible pyenv pour **tous** les utilisateurs nous allons modifier le fichier **/etc/bash.bashrc**
```console
sudo mcedit /etc/bash.bashrc
```
Ajoutez les lignes suivantes à la fin du fichier
```bash
export PATH="/usr/local/pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
```
N'oubliez pas de recharger votre bash avant de pouvoir utiliser la commande **pyenv**
#Utilisation
##installer une version de python
**WARNING** : pensez à toujours utiliser l'option **--skip-existing**
- La version de python désirée sera installée dans le home de l'utilisateur qui lance la commande.
- voici la commande pour installer par exemple la version 3.10.6 de python :
```console
pyenv install 3.10.6 --skip-existing
```
##utiliser une version spécifique de python dans un répertoire
- Nous pouvons maintenant décider quelle version de python, nous allons utiliser par défaut dans un répertoire
- pour se faire, utiliser la commande suivante (toujours pour la version choisie pour l'exemple) :
```console
pyenv local 3.10.6
```
- désormais quand nous allons créer un virtualenv avec **python3 -m venv venv* notre environnement virtuel utilisera la version précedemment choisie