Python, environnement virtuel

Le langage Python est l’un des plus élégant et simple à appréhender. C’est un langage sans limite qui permet de réaliser un nombre impressionnant de projet, que ce soit de l’application web, à la data-science en passant par des applications bureautiques. Ce nombre de projet, le nombre de programmeur ainsi que le nombre de module, de versions disponibles font qu’il peut rapidement devenir complexe de travailler sur différents projets. La mise en place d’un environnement virtuel va permettre de résoudre ses problèmes.

Pourquoi utiliser un environnement virtuel

Comme je viens de l’écrire, les problèmes peuvent devenir de plus en plus nombreux en fonction de différents facteurs :

  • le nombre de programmeur avec des versions installées de Python ou des modules différents
  • la mise en place de système de test
  • le maintien à jour (ou pas) des modules
  • la nécessité d’avoir des versions de module différent en fonction de l’application

Et j’en oublie certainement.

La mise en place d’un environnement virtuel va permettre de régler l’ensemble de ces problèmes.

Il va permettre d’isoler son projet (son application) de l’installation système, on aura donc (si on le souhaite) :

  • différents environnements ou python disponible sans avoir à tout réinstaller
  • des modules pouvant avoir des versions différentes en fonctions des environnement
  • un partage simplifier entre programmeur notamment en utilisant un dépot GIt qui contiendra un fichier (requirements.txt) qui listera les modules et les versions nécessaires pour le projet Python.

La mise à jour du système d’exploitation ne mettra pas à jours les modules des environnements, on pourra donc avoir un module en version 2 sur l’environnement et ce même module en version 3 sur le système.

De plus, même si cela n’est pas un argument en soi, la majorité des développeurs travaillent avec un environnement virtuel.

Mise en place d’un environnement virtuel

Beaucoup d’IDE (PyCharm ou visual Studio) bénéficie de leur propre moyen de mettre en place un environnement virtuel. Je verrai ici, la mise ne place pour un système linux (debian) en ligne de commande.

Installation de virtualenv

Dans mon cas, j’utilise l’outil virtualenv, celui-ci est généralement déjà installé. Si il n’est pas présent, l’installation se fait :

sudo apt install virtualenv

Création de l’environnement virtuel

La création d’un environnement se fait simplement en tapant la commande à la racine de son projet :

virtualenv -p python3 env

Activation et désactivation de l’environnement

Cela va créer l’environnement, mais pour y travailler, il va falloir l’activer :

source env/bin/activate

Nous voyons que nous sommes bien dans l’environnement virtuel avec le nom de cet environnement qui apparaît à gauche :

Pour le désactiver, il suffit de taper :

deactivate

Pour visualiser de changement d’environnement, tu peux voir l’image qui sui :

Avec la première commande, on voit que le python3 se situe bien dans /usr/bin (soit sur le système, la troisième commande permet de visualiser la mise en place de la virtualisation.

Installer, supprimer et lister les modules disponibles

Notre nouvel environnement créé, il est vierge de tout module, pour lister les modules disponibles, une fois l’environnement activé :

pip freeze

Qui retournera les modules :

On vois qu’il n’y a qu’un seul module d’installer, d’ailleurs, je t’invite à lire cette page qui explique la présence de ce module. Il est possible de rediriger le résultat de cette commande vers un fichier requirements.txt. D’ailleurs, il s’agit d’un fichier important pour lister et installer facilement les modules.

La création de ce fichier ce fait :

pip freeze > requirements.txt

Pour installer un module, on utilise le module pip :

pip install <nom_module>

Pour installer les modules inscrits dans le fichiers requirements.txt :

pip insatll -r requirements.txt

Pour supprimer un module, on utilise également la module pip :

pip uninstall <nom_module>

Conclusion

En quelques lignes, la mise en place d’un environnement virtuel se fait facilement et vous permettra de disposer d’un espace de travail isolé de votre système.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.