Travailler dans un contexte virtuel
Installer des librairies via pip en se basant sur un fichier de dependances
Vous utiliserez plusieurs librairies dans votre cours : Numpy, Scipy. Peut-etre avez-vous deja travaille avec ces librairies ?
Si c’est la premiere fois, il vous faudra les installer. Par defaut, vous des installerez dans votre ordinateur. Mais si vous aurez developpe diverses projets vous aurez peut-etre la desagreable surprise de constater des erreurs dues a des versions differentes.
Imaginons que vous travailliez avec la version 1.0 de Librairie1 dans un projet X. Six mois plus tard, vous avez de nouveau besoin de cette librairie mais la version a change, il s’agit desormais d’une 1.1. Vous installez donc la nouvelle version qui, elle-meme, depend d’autres modules ! Tres vite, un chateau de cartes instable s’installe dans votre ordinateur.
L’ideal, me direz-vous, serait de i?tre capable de isoler les librairies installees par projet. Ou meme mieux : de pouvoir decider quel environnement de developpement nous souhaitons se servir de.
C’est exactement l’objectif des environnements virtuels : coder un environnement comprenant une certaine version de Python et les librairies que vous souhaitez. Si la ordinateur est un immeuble, nous pourrions imaginer qu’un environnement virtuel pourrait i?tre une piece de cet immeuble dans laquelle vous installez votre que vous souhaitez. Si vous entrez dans la piece, nos librairies installees paraissent accessibles. Mais si vous la quittez, plus rien n’existe !
Utiliser Virtualenv
Il existe diverses solutions d’environnement virtuel. Dans une cas nous allons utiliser VirtualEnv.
Installation
Commencez donc avec installer VirtualEnv :
Puis deplacez-vous dans votre dossier d’embauche.
Creer et activer un contexte virtuel
Concretement, comment fonctionne 1 contexte virtuel ?
Commencez via creer 1 environnement virtuel en lancant la commande suivante :
Si vous travaillez avec Windows, executez la commande suivante au sein d’ PowerShell :
Elle cree votre dossier env utilisant Python3 au repertoire courant.
Pour activer l’environnement, ecrivez J’ai achat suivante :
Si vous travaillez avec PowerShell, executez la commande suivante :
Vous constatez alors que l’environnement virtuel est indique entre parentheses sur la gauche de votre console.
A partir de maintenant, l’interpreteur Python utilise n’est plus celui de votre systeme mais bien celui de l’environnement virtuel. Vous pouvez le voir reellement facilement en utilisant la commande which (UNIX) ou where (Windows) qui affiche le chemin vers l’executable :
Si vous utilisez PowerShell, lancez la achat suivante pour afficher l’endroit duquel est execute pip :
Mes packages installes sont egalement multiples :
Si vous ouvrez votre autre terminal, vous constatez que l’environnement virtuel n’est nullement active :
Il faut le reactiver a chaque fois que vous souhaitez l’utiliser.
Desactiver votre contexte virtuel
Pour desactiver votre contexte virtuel, tapez seulement deactivate .
Avant d’installer une librairie, verifiez que votre environnement virtuel reste bien active et qu’il s’agit bien de celui de votre projet !
Oublier votre contexte virtuel
Pour supprimer un contexte virtuel, rien En plus simple ! Commencez via le desactiver puis supprimez son repertoire.
L’utilisation d’un avis match environnement virtuel reste tres courante. Elle permet de ne point avoir a installer les dependances d’un projet dans le systeme d’exploitation et facilite la collaboration.
Desactiver le suivi Git
Si vous utilisez Git (et j’espere bien que oui ! 🙂 ), il va falloir imperativement desactiver le suivi de modifications de ce environnement virtuel. Effectivement, vous ne voulez jamais envoyer via Github bien ce contexte virtuel !
Pour ceci, creez un fichier .gitignore et ajoutez a l’interieur la ligne suivante :
Elle indique a Git d’ignorer le dossier env .
Si la contexte virtuel porte un nouvelle nom, vous devez egalement le changer a votre endroit-la !
Un fichier de dependances
Imaginons a present que le programme soit fini. Vous le publiez sur Github afin que toute personne interessee puisse y avoir acci?s.
Comment ces dernieres peuvent-elles connaitre des diverses librairies utilisees au projet ? Elles n’auront pas acces a la contexte virtuel. Evidemment, elles peuvent analyser en bas des divers fichiers et chercher nos imports. Mais cela est fastidieux et, surtout, il est impossible de connaitre les versions utilisees.
Mes librairies qui ne semblent jamais standards, qui doivent avec consequent etre installees, paraissent votre que nous appelons des dependances. Dans les faits, le projet reste dependant de un installation et ne peut jamais fonctionner sans.
De sorte i remedier a votre probleme, Il est une convention : creer un fichier requirements.txt qui liste nos plusieurs librairies employees ainsi que leur version.
Creer un fichier de dependances
Pypi peut le faire automatiquement pour vous ! Pour i§a, executez la commande suivante.
Cette commande “gele” nos librairies employees ainsi que leur version en les listant dans un document.
Si vous utilisez PowerShell, executez la commande suivante :
Voici ce qui a ete genere :
Cette commande est fort utile mais peut se reveler restrictive. Pip indique en effet l’integralite des librairies utilisees, y compris des librairies fondamentales telles que packaging ou six que vous n’avez inutile d’installer. C’est pourquoi ce que nous preconisons est d’ajouter a la main des dependances explicitement requises par un projet.
Installer des dependances
Si 1 fichier requirements.txt y a deja, vous pouvez sans probli?me en poser l’integralite des librairies en executant la commande suivante :
Parfait ! Nous avons surpris dans ce chapitre comment choisir un environnement virtuel et installer un fichier de dependances. Au futur chapitre nous commencerons l’analyse ! A tout de suite !