pyenv
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| pyenv [2023/11/06 21:50] – luc | pyenv [2024/08/18 13:41] (Version actuelle) – [Installer et configure ''pyenv''] luc | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | ====== PYENV ====== | ||
| + | |||
| + | Les [[virtualenv|environnements virtuels]] sont pratiques pour isoler un applicatif et ses dépendances d'un autre applicatif ou du système hôte, néanmoins `venv` est un module de python, et donc l' | ||
| + | Cela peut poser plusieurs problèmes : | ||
| + | * Sur un système particulièrement stable (comme centos), on sera bloqué à une version de python probablement obsolète | ||
| + | * Sur un système plus vivant (comme archlinux), la version de python risque d' | ||
| + | |||
| + | C'est l'un des avantages de [[conda]], avoir une sorte de package manager qui permet d' | ||
| + | Cependant, à l' | ||
| + | |||
| + | `pyenv` est une solution alternative, | ||
| + | |||
| + | ===== Installer et configure '' | ||
| + | |||
| + | Archlinux propose un paquet tout fait, installation via pacman : | ||
| + | <code bash> | ||
| + | pacman -S pyenv | ||
| + | </ | ||
| + | |||
| + | pyenv va télécharger les sources de python et les compiler, il faut donc également installer les libs pour permettre la bonne compilation : | ||
| + | <code bash> | ||
| + | pacman -S --needed base-devel openssl zlib xz tk | ||
| + | </ | ||
| + | |||
| + | Il faut ensuite configurer pyenv, et notamment son shell, ça se passe dans `.bashrc` | ||
| + | <code bash> | ||
| + | export PYENV_ROOT=" | ||
| + | command -v pyenv >/ | ||
| + | eval " | ||
| + | </ | ||
| + | En gros, les versions de python seront installés et accessibles depuis son home : '' | ||
| + | |||
| + | |||
| + | ===== Utiliser pyenv au quotidien dans un SHELL ===== | ||
| + | |||
| + | <code bash> | ||
| + | # Installer une version spécifique de python | ||
| + | pyenv install 3.11 | ||
| + | pyenv install 3.11.5 | ||
| + | |||
| + | # Voir les versions installées | ||
| + | pyenv versions | ||
| + | |||
| + | # Voir toutes les versions possibles | ||
| + | pyenv install --list | ||
| + | # note : d' | ||
| + | |||
| + | # Activer une version pour cette session shell | ||
| + | # similaire à un "conda activate < | ||
| + | pyenv shell 3.8 | ||
| + | |||
| + | # Activer une version par défaut à l' | ||
| + | pyenv global 3.11.6 | ||
| + | # note : utiliser la version " | ||
| + | |||
| + | # Activer une version pour le dossier actuel | ||
| + | pyenv local 3.12 | ||
| + | # note: crée un fichier .python-version dans ce dossier qui précisera à pyenv quelle version utiliser dans ce dossier | ||
| + | |||
| + | # Connaître la version actuellement en cours d' | ||
| + | pyenv version | ||
| + | |||
| + | # Supprimer une version de python | ||
| + | pyenv uninstall 3.5.8 | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | ===== Pyenv avec un virtualenv ===== | ||
| + | |||
| + | ==== Dans un shell ==== | ||
| + | Il convient d' | ||
| + | Par exemple pour un déploiement en prod (même si certains aiment les outils à la hype plus élevée comme [[https:// | ||
| + | |||
| + | On peut aussi utiliser un plugin de pyenv, [[https:// | ||
| + | |||
| + | ==== Dans pycharm ==== | ||
| + | Pycharm permet d' | ||
| + | On notera que `venv` n'est pas disponible, on utilisera `virtualenv` qui est un cousin proche. | ||
| + | |||
| + | Dans la fenêtre virtualenv, on peut sélectionner l' | ||
