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' | ||