Quand vous jonglez entre plusieurs projets Python, chacun avec sa propre version du langage, les ennuis arrivent vite. Un pip install qui casse les dépendances d'un autre projet, une librairie qui refuse de s'installer sur la mauvaise version... Pyenv règle le problème : il permet d'installer plusieurs versions de Python et de basculer de l'une à l'autre sans toucher à la version système.
Installation de Pyenv
Sous macOS et Linux
Le plus simple, c'est Homebrew :
brew update
brew install pyenvSous Windows
Utilisez WSL et suivez les mêmes étapes que sous Linux. Si vous préférez rester en natif Windows, il existe un fork dédié : Pyenv-win.
Gérer les versions Python
Installer une version :
pyenv install 3.10
Voir les versions installées :
pyenv versions
Supprimer une version :
pyenv uninstall 3.10.4
Basculer entre les versions
Pyenv gère trois niveaux de priorité. C'est ce qui le rend pratique au quotidien.
Version globale (celle par défaut sur votre machine) :
pyenv global 3.12
Version locale (spécifique à un dossier de projet, via un fichier .python-version) :
pyenv local 3.10.4
Version temporaire (juste pour la session shell en cours) :
pyenv shell 3.9.0
La version locale écrase la globale, et la version shell écrase tout le reste. En pratique, vous définirez une globale une fois, puis une locale par projet.
Problèmes courants
Pyenv non reconnu
Si votre terminal ne trouve pas la commande pyenv, c'est que le PATH n'est pas configuré. Ajoutez ces lignes à votre .bashrc ou .zshrc :
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init - bash)"' >> ~/.bashrcErreur d'installation d'une version
Lancez pyenv doctor pour identifier ce qui manque. Le plus souvent, ce sont les librairies zlib ou openssl qui ne sont pas installées.
Conflits avec Anaconda
Si Anaconda est installé, il peut prendre le dessus dans votre PATH. Vérifiez que Pyenv passe en premier.
Problèmes de permissions
Vérifiez que votre utilisateur a les droits en écriture sur le dossier ~/.pyenv.




