🔨 Créer et utiliser un Environnement Virtuel Python
Intérêt
L’Ă©tat de l’art de la programmation du Machine Learning en Python consiste Ă utiliser un Environnement Virtuel Python (EVP) pour encapsuler chaque projet dans un environnment dĂ©diĂ© et pĂ©renne. Chaque EVP procure un environnement informatique contenant une installation de Python :
- indépendante des autres installations Python susceptibles de coexister sur la même machine,
- indépendante des mises à jour de l’ordinateur.
Un EVP repose sur la création d’une arborescence disque dédiée qui héberge la version de Python et des modules dont tu as besoin pour ton projet. Tu peux effacer et re-créer un EVP très facilement, sans impacter les autres installations de Python éventuellement présentes sur ton ordinateur.
Outils
Deux outils sont le plus souvent rencontrés pour créer EVP :
- La commande
conda
, disponible si tu as installé Python avec miniconda ou Anaconda. - Le module Python
venv
(cf venv).
L’intĂ©rĂŞt de miniconda
pour le calcul numĂ©rique est que cette distribution installe de façon transparente la bibliothèque MKL, qui fournit une optimisation poussĂ©e pour les processeurs Intel des bibliothèques d’algèbre linĂ©aire (BLAS, Lapack…) Ă la base des performances de modules comme numpy.
Comment fonctionne un EVP
Quand l’EVP <nom_evp>
est activé :
- la variable d’environnement
PATH
est modifiée dans ton fichier.bashrc
pour mentionner en premier :- le répertoire contenant la commande
conda
: par exemple/home/<logname>/miniconda3/condabin/
- le répertoire
bin
de l’EVP: par exemple/home/<logname>/miniconda3/envs/<nom_evp>/bin/
- le répertoire contenant la commande
- toutes les commandes liées à Python (
python
,conda
,pip
…) sont recherchĂ©es en premier dans ces deux rĂ©pertoires. - toute installation d’un module Python par
conda
oupip
installe le module dans l’arborescence/home/<logname>/miniconda3/envs/<nom_evp>/
CrĂ©ation d’un EVP avec conda
sous Ubuntu
-
📥 Télécharge et installe miniconda sur ton ordinateur en faisant attention à ces points :*
- Tu dois dĂ©finir un chemin d’installation du rĂ©pertoire
miniconda3
qui ne comporte ni espace, ni caractère accentué
Sous Ubuntu le chemin d’installation par dĂ©faut ressemble Ă/home/<logname>/miniconda3/
. - Ă€ la fin de l’installation rĂ©ponds
yes
Ă la questionDo you wish the installer to initialize Miniconda3 by running conda init? [yes|no]
- Lance un nouveau terminal ou tape la commande
source ~/.bashrc
pour hériter des modifications du fichier.bashrc
. - DĂ©sactive le lancement automatique de l’EVP
(base)
en tapant la commande :conda config --set auto_activate_base false
.
- Tu dois dĂ©finir un chemin d’installation du rĂ©pertoire
-
Ensuite il ya 3 Ă©tapes expliquĂ©es ci-dessous, Ă mettre en oeuvre en suivant l’exemple plus bas :
- CrĂ©er l’EVP :
conda create -n <nom_evp> pip python=<version>
<nom_evp>
est le nom (libre) de ton EVP, souvent un nom mnémonique commepyml
(pour “python machine learning”) outf2
(pour un projet avec “tensorflow2”),<version>
donne la version de l’interprĂ©teur Python Ă installer dans l’EVP : par exmple3.6
ou3.6.8
ou3.8
…
Nota : pour l’API Tensorflow2 Object Detection la version 3.8 de Python est conseillĂ©e.
- Activer l’EVP :
conda activate <nom_evp>
- L’activation de l’EVP se traduit par le prĂ©fixage du prompt avec la chaĂ®ne :
(<nom_evp>)
.
Par exemple si le prompt courant estuser@host $
, l’activation de l’EVP nommĂ©tf2
modifie le prompt qui devient :(tf2) user@host $
- Charger les modules Python nĂ©cessaires Ă ton projet dans l’EVP activĂ© :
Avec ton EVP activé utiliseconda install <module_name>
oupip install <module_name>
pour installer le module Python<module_name>
.
❓conda install...
oupip install...
lequel choisir ? le règle est simple :- commence par
conda install...
, qui va installer une version optimisée du module Python si elle est connue deconda
- utilise
pip install...
siconda install...
échoue.
- commence par
- CrĂ©er l’EVP :
Exemple
🔨 Un EVP pour travailler avec tensorflow2
Avec miniconda
installĂ©, créé l’EVP tf2
pour un travail avec Python en version 3.8, puis active l’EVP :
user@host $ conda create -n tf2 pip python=3.8
... some stuff...
user@host $ conda update -n base -c defaults conda # mise Ă jour de la commnande
user@host $ conda activate tf2
(tf2) user@host $
📥 Tu peux ensuite installer des modules Python essentiels au travail avec tensorflow2 :
(tf2) user@host $ pip install tensorflow==2.9
(tf2) user@host $ conda install numpy scipy matplotlib jupyter pandas
(tf2) user@host $ pip install scikit-learn scikit-image seaborn pydot rospkg pyyaml opencv-python==4.6.0.66
Commandes utiles
-
Afficher les infromations sur la distribution conda :
conda info
-
Lister les EVP connus de conda :
conda env list
-
DĂ©sactiver l’EVP courant :
conda deactivate
-
Activer l’EVP nommĂ©
<evp>
:conda activate <evp>
-
Avec ton ** EVP activé** :
-
Lister les modules Python installés dans ton EVP :
conda list
oupip list
-
Trouver les versions d’un module Python installable par conda pour ton EVP :
conda search <module>
-
-
Mettre Ă jour la commande conda dans l’EVP
base
:conda update -n base -c defaults conda
.