connaître la version actuelle du python par défaut de votre environnement :
python --version
pip --version # donne la version pip utilisée avec la version python courante
connaître la localisation des commandes :
which python
which pip
choisir la version X.Y de python et de pip utilisant ce python X.Y (parmi les versions installées)
pythonX.Y mon_programme.py
pipX.Y ...
si une seule version mineur Y, il peut suffire d’écrire :
pythonX mon_programme.py
pipX ...
executer un module python en spécifiant la version
pythonX.Y -m MODULE .... arguments ...
ex : équivalence
jupyter notebook
pythonX.Y -m jupyter notebook
installer un package dans votre propre environnement utilisateur avec "- -user"
équivalence entre :
pipX.Y install --user PACKAGE
pythonX.Y -m pip install --user PACKAGE
pip a son propre numéro de version, indépendante de la version de python sous-jacente qui le fait tourner.
options de pip :
--user
: permet d’installer des packages dans son propre environnement et non en mode administrateur--upgrade
: permet de mettre à jour un package pour avoir la dernière version, y compris pour les dépendances--force
: permet de forcer l’opération, ex : ... install --force ...
force la (ré)installationInstaller des packages dans un environnement virtuel
Quand on a plusieurs codes nécessitant des versions différentes des mêmes packages, ou de façon générale, pour travailler de manière maîtrisée et reproductible, on peut se créer des environnements virtuels python :
# création de l'environnement
$ python3 -m venv $HOME/mon-env-de-test
# activation
$ source $HOME/mon-env-de-test/bin/activate
# installation dans cet environnement
(mon-env-de-test) [facq@devel02 ~]$ python3 -m pip install tensorflow
# désactivation, retour à l'environnement python par défaut
$ deactivate
connaitre les numéros de version des packages installés
pip freeze
pipX.Y freeze
ou
pip list
pipX.Y list
ou sont stockés vos packages python personnels ?
$HOME/.local/lib/pythonX.Y/site-package/...
on peut repartir à zéro pour une certaine version python, en effaçant le son répertoire : (tous les modules installés en --user
sont supprimés)
rm -rf $HOME/.local/lib/pythonX.Y
$HOME/.local/bin ...
$HOME/.bashrc
PATH="$HOME/.local/bin/:$PATH"
Permet d’installer un ou plusieurs environnements python (et autres packages complémentaires ou sous-jacents) complets, totalement indépendants des pythons installés sur le système.
🚧⚠️🚧 l’outil "Mamba" (réimplémentation de conda - compatible) est beaucoup plus performant, notamment pour gérer les dépendances et résoudre les conflits de version.
💡Conseils :
Exemple avec anaconda3
il est généralement préférable de se créer et d’activer un environnement dédié (certaines opérations ne marchent pas bien si on n’est pas dans un environnement particulier)
nous allons créer un environnement baptisé chezmoi
conda create -y -n chezmoi
pour activer l’environnement chezmoi, afin que ce soit l’environnement courant, nous faisons ensuite :
conda activate chezmoi
une alternative consiste à préciser un chemin, en utilisant -p chemin
au lieu de -n label
, ce qui permet de préciser explicitement où vont être stockés les fichiers. Très pratique en cas de saturation d’un espace disque : (création puis activation)
conda create -y -p $HOME/chezmoi
conda activate $HOME/chezmoi
on peut chercher des packages contenant certains motifs, exemple avec python puis cuda
conda search '*python*'
conda search '*cuda*'
puis les installer dans l’environnement courant :
conda install -y python==3.8.13 cudatoolkit==11.3.1
Il est recommandé, pour des questions de compatibilité, d’installer avec conda tous les packages dont on a besoin. Mais, en dernier ressort, on peut utiliser pip comme ci-dessus pour installer les packages qui n’existerait pas dans l’univers conda.
pour lister les packages installés spécifiquement dans l’environnement courant :
conda list
Installer conda
Si conda n’est pas disponible ou trop vieux ou mal installé, vous pouvez installer conda chez vous.
Il faut choisir un endroit où vous avez suffisamment de la place (c’est assez gros).
# exemple pour PlaFRIM :
export CONDA_ROOT=/beegfs/$USER/conda
# ou exemple pour Curta :
export CONDA_ROOT=/scratch/$USER/conda
# ou exemple pour IMB :
export CONDA_ROOT=/scratch/imb/$USER/conda
puis installer :
curl --output Anaconda3-2022.10-Linux-x86_64.sh https://repo.anaconda.com/archive/Anaconda3-2022.10-Linux-x86_64.sh
bash Anaconda3-2022.10-Linux-x86_64.sh -b -p $CONDA_ROOT
À faire à chaque fois pour utiliser ce conda :
source $CONDA_ROOT/etc/profile.d/conda.sh"
export PATH=$CONDA_ROOT/bin:$PATH
Installer mamba
Mamba est une version optimisée de conda, beaucoup plus rapide quand il y a beaucoup de dépendances à résoudre.
Il faut choisir un endroit où vous avez suffisamment de la place (c’est assez gros).
# exemple pour PlaFRIM :
export CONDA_ROOT=/beegfs/$USER/Mamba
# ou exemple pour Curta :
export CONDA_ROOT=/scratch/$USER/Mamba
# ou exemple pour IMB :
export CONDA_ROOT=/scratch/imb/$USER/Mamba
puis installer :
cd /tmp
wget "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-$(uname)-$(uname -m).sh"
bash Mambaforge-$(uname)-$(uname -m).sh -b -p $CONDA_ROOT
source $CONDA_ROOT/etc/profile.d/conda.sh
À faire à chaque fois pour utiliser ce mamba :
source $CONDA_ROOT/etc/profile.d/conda.sh"
export PATH=$CONDA_ROOT/bin:$PATH