🔨 Créer et utiliser un Environnement Virtuel Python

Intérêt

L’Ă©tat de l’art pour la programmation en Python du Machine Learning 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 :

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 :

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 l’optimisation pour les processeurs Intel des bibliothèques d’algèbre linĂ©aire (BLAS, Lapack…) Ă  la base des performances du module numpy.

Comment fonctionne un EVP

Quand l’EVP <nom_evp> est activĂ© :

CrĂ©ation d’un EVP avec conda sous Ubuntu

  1. 📥 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/.

    • RĂ©pondre yes Ă  la question :
      Do you wish the installer to initialize Miniconda3
      by running conda init? [yes|no]

    • Ă€ la fin de l’installation rĂ©ponds yes Ă  la question Do 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.

  2. CrĂ©Ă© l’EVP avec la commande conda create -n <nom_evp> python=<version>

    • <nom_evp> : nom (libre) de ton EVP : souvent un nom mnĂ©monique comme pyml(pour Python machine learning) ou tf2 (pour un projet avec tensorflow2)
    • <version> : version de Python que tu veux installer dans ton EVP : par exmple 3.6 ou 3.6.8 ou 3.8
      Nota: pour utiliser l’API Tensorflow2 Object Detection dans un EVP, la version 3.8 de Python est conseillĂ©e.
  3. Active ton EVP avec la commande 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 est user@host $, l’activation de l’EVP nommĂ© tf2 modifie le prompt qui devient : (tf2) user@host $
  4. 📥 Charge les modules Python nécessaires à ton projet dans ton EVP activé :

    Avec ton EVP activé utilise conda install <module_name> ou pip install <module_name> pour installer le module Python <module_name>.

    ❓ conda install... ou pip 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 de conda
    • utilise pip install... si conda install... Ă©choue.

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 python=3.8
... some stuff...

user@host $ conda activate tf2
(tf2) user@host $

Tu peux ensuite installer des modules Python essentiels au travail avec tensorflow2 :

(tf2) user@host $ conda update -n base -c defaults conda
(tf2) user@host $ pip install tensorflow==2.6
(tf2) user@host $ conda install numpy scipy matplotlib jupyter pandas
(tf2) user@host $ pip install scikit-learn scikit-image seaborn pydot rospkg pyyaml
(tf2) user@host $ pip install opencv-python==4.5.1.48

Commandes utiles