Archives Wild Code School
Python

Pipenv

Quête 50 sur 66

Introduction à Pipenv

Cette quête est le point de départ vers le monde merveilleux des environnements virtuels et de la gestion des dépendances avec Python !

Objectifs:

  • Découvrir et comprendre Pipenv
  • Installer Pipenv
  • Créer un environnement virtuel
  • Installer des dépendances
  • Supprimer un environnement virtuel et ses dépendances
  • Interagir dans l'environnement virtuel
  • Installer les dépendances d'un projet existant
  • Aller plus loin

Découvrir et comprendre Pipenv

Pipenv c'est quoi ? C'est un gestionnaire d'environnements virtuels et de dépendances. C'est une alternative à la combinaison de pip et virtualenv. Pour rappel pip est un gestionnaire de paquets et virtualenv un gestionnaire d'environnements virtuels

Pipenv a tellement de succès qu'il est recommandé officiellement par la documentation python

Un exemple d'utilisation

Le récit

Vous récupérez 2 projets écrits en python

Le premier projet est sous python 3.6 et utilise la dépendance DJANGO en version 2

Le deuxième projet est sous python 3.7 et utilise la dépendance DJANGO en version 3.1

Malheureusement tu vas avoir un conflit entre les dépendances DJANGO et les versions de python si tu n'utilises pas d'environnement virtuel c'est là que pipenv intervient.

Pipenv permet de créer un environnement virtuel pour chacun des projets, fini les conflits entre les versions de python et les dépendances.

Cerise sur le gâteau il crée de manière automatisée les environnements virtuels et télécharge les dépendances automatiquement.

Voyons ça par la suite...

Installation de Pipenv

Pour installer pipenv rien de plus simple, va sur la documentation officielle qui va te proposer l'option adaptée à ton système d'exploitation.

↗
https://github.com/pypa/pipenv#installation
github.com

Création d'un environnement virtuel

Maintenant voyons comment créer un environnement virtuel

pipenv install

Félicitation tu viens de créer un environnement virtuel

Créer un environnement virtuel avec une version spécifique de python

pipenv --python 3.6

Installation des dépendances

Alors maintenant que tu sais créer des environnements virtuels tu aimerais pouvoir installer des dépendances dans ces environnements.

pipenv install NomDeTaDépandance

Exemple:

pipenv install django

Lance installation de la dépendance Django

Supprimer un environnement virtuel et ses dépendances

Comment supprimer un environnement virtuel ? Rien de plus simple, places toi dans le dossier de ton projet puis saisis le code suivant :

pipenv --rm

Félicitation tu viens de supprimer l’environnement virtuel que tu avais créé et les dépendances qui étaient installées.

Interagir dans l'environnement virtuel

Lancer une commande dans l'environnement virtuel

pipenv run

Exemple: pipenv run python

Va lancer le Python de votre environnement virtuel.

Entrée dans le shell de l'environnement virtuel

pipenv shell

Sortir de l'environnement virtuel

exit

Installer les dépendances d'un projet existant

Hey tu pensais que c'était fini ! et bien non j'ai gardé le meilleur pour la fin

Le récit

Ton collègue développeur part en vacances. Il te demande de reprendre son projet qu'il t'as partagé sur github. Comme bien entendu vous êtes une équipe de développeurs qui respectent les recommandations de la documentation officielle de python, vous utilisez pipenv.

Il te suffit alors de cloner son dépô qui, comme tu la peux être déjà remarqué en faisant des tests précédemment, contient des fichiers pipfile créés par pipenv

Alors comment fais-tu pour les utiliser ? ...à vrai dire c'est plutôt simple. Ouvres un shell dans le dossier que tu viens de cloner et lances la commande ci-dessous:

pipenv install

Voilà c'est tout. pipenv va détecter les fichiers pipfile, créer un environnement virtuel, et installer la bonne version de python ainsi que les dépendances....

Pipenv c'est quand même magique !

Aller plus loin

Hey tu pensais que c'était fini ! et bien non j'ai gardé le meilleur pour la fin.

↗
https://pypi.org/project/pipenv/

Documentation officiel de pipenv !

pypi.org