Recherche de site Web

Comment gérer les packages Python avec Pipenv


L'autre jour, nous avons publié un guide pour débutants sur la gestion des paquets Python avec PIP. Dans ce guide, nous avons expliqué comment installer pip, et comment installer, mettre à jour et désinstaller des paquets Python avec pip. Nous avons également discuté de l'importance des environnements virtuels et de la façon de créer un environnement virtuel avec les outils venv et virtualenv. Aujourd'hui, nous allons apprendre à propos d'un autre gestionnaire de paquets Python nommé pipenv. C'est le nouvel outil de gestion des paquets Python recommandé par Python.org. Il peut être utilisé pour installer et gérer facilement les dépendances Python sans avoir besoin de créer des environnements virtuels. Pipenv crée et gère automatiquement un virtualenv pour vos projets. Il ajoute et supprime également des paquets de votre Pipfile lorsque vous installez ou désinstallez des paquets.

Pourquoi Pipenv ?

Pipenv traite les problèmes en temps réel suivants :

  • Vous n'avez plus besoin de créer un environnement virtuel. Pipenv créera automatiquement un virtualenv pour vos projets. Pour le dire simplement, pip et virtualenv fonctionnent ensemble.
  • Gérer un fichier requirements.txt peut poser des problèmes, donc Pipenv utilise à la place le prochain Pipfile et Pipfile.lock, ce qui est supérieur pour les cas d'utilisation basiques.
  • C'est sûr. Les hachages sont utilisés partout, toujours. Expose automatiquement les vulnérabilités de sécurité.
  • Afficher le graphique des dépendances à tout moment.
  • Rationalisez le flux de développement en chargeant les fichiers .env.

Eh bien, commençons.

Installer Pipenv sur Linux

Il existe de nombreuses façons d'installer Pipenv. Nous allons voir deux méthodes officiellement recommandées.

1. Installer pipenv en utilisant pip

La façon officiellement recommandée est d'utiliser pip. Assurez-vous d'avoir installé Python et pip. Sinon, référez-vous à notre guide précédent lié dans le premier paragraphe de cet article.

Une fois pip installé, exécutez la commande suivante pour installer pipenv.

$ pip install --user pipenv

Cette commande installera pipenv au niveau utilisateur (c'est-à-dire pas système-wide). Si pipenv n'est pas disponible dans votre shell après l'avoir installé, vous devrez peut-être ajouter le répertoire binaire de votre base utilisateur à votre PATH. Si vous ne savez pas ce qu'est votre base utilisateur, exécutez la commande suivante pour le découvrir :

$ python -m site --user-base

Vous verrez une sortie quelque chose comme ci-dessous.

/home/sk/.local

Comme vous pouvez le voir dans la sortie ci-dessus, mon répertoire de base utilisateur est /home/sk/.local, et le répertoire binaire de ma base est /home/sk/.local/bin. Clair ? Bien. Maintenant, ajoutez ceci à votre PATH. Pour ce faire, modifiez votre fichier ~/.profile :

$ vi ~/.profile

Ajoutez cette ligne à la fin :

export PATH="$HOME/.local/bin:$PATH"

Appuyez sur la touche ESC et tapez :wq pour enregistrer et quitter le fichier. Ensuite, exécutez la commande suivante pour appliquer les modifications.

$ source ~/.profile

Enfin, exécutez la commande suivante :

$ pipenv --update

Pour mettre à jour pipenv à tout moment, exécutez la commande suivante :

$ pip install --user --upgrade pipenv

2. Installer pipenv en utilisant pipsi

Pipsi est un outil puissant qui vous permet d'installer des scripts Python dans des environnements virtuels isolés.

Pour installer pipsi, exécutez :

$ curl https://raw.githubusercontent.com/mitsuhiko/pipsi/master/get-pipsi.py | python

Suivez les instructions à l'écran, vous devrez mettre à jour votre PATH.

Une fois pipsi installé, exécutez les commandes suivantes pour installer pipenv :

$ pipsi install pew
$ pipsi install pipenv

Enfin, exécutez la commande suivante :

$ pipenv --update

Pour mettre à jour pipenv à tout moment, il suffit d'exécuter :

$ pipsi upgrade pipenv

Gérer les packages Python avec Pipenv

Exécutez 'pipenv' dans votre shell pour afficher la liste des commandes disponibles et des options générales.

$ pipenv

La sortie d'exemple serait :

Installation des paquets

Créez un nouveau projet ou allez dans le répertoire du projet existant.

$ mkdir myproject
$ cd myproject

Installez les packages pour votre projet :

$ pipenv install requests

Lorsque vous ls dans le répertoire de votre projet (c'est-à-dire myproject dans ce cas), vous verrez deux fichiers, à savoir Pipfile et Pipfile.lock. Le Pipfile contient des informations sur le paquet nouvellement installé, telles que son nom, sa version, etc. Vous pouvez utiliser ce Pipfile pour suivre les dépendances dont votre projet a besoin lorsque vous souhaitez réinstaller le projet ou le partager avec d'autres.

$ cat Pipfile

Et, le Pipfile.lock contient les informations de votre système, toutes les dépendances du paquet installé y compris leur version, et tous les hachages de tous les paquets installés ainsi que de leurs dépendances.

$ cat Pipfile.lock

Installez maintenant un autre paquet et vérifiez à nouveau le contenu des deux fichiers. Vous remarquerez que le Pidfile contient désormais deux paquets. Et, Pidfile.lock contient toutes les dépendances des paquets installés, y compris leurs versions, ainsi que tous les hachages de tous les paquets installés et de leurs dépendances. Pour simplifier, ces deux fichiers seront mis à jour automatiquement chaque fois que vous installerez un nouveau paquet.

As-tu remarqué ? Je n'ai créé aucun environnement virtuel. Pipenv a automatiquement créé un environnement virtuel pour mon projet. Tu te demandes où sont stockés tes projets ? Il suffit d'exécuter cette commande pour connaître l'emplacement de ton environnement virtuel.

$ pipenv --venv
/home/sk/.local/share/virtualenvs/myproject-x7-2XYPN

Pour voir les détails de la page d'accueil de votre projet, exécutez :

$ pipenv --where
/home/sk/myproject

Comme vous pouvez le voir dans les deux sorties, "/home/sk/myproject" est le répertoire principal de mon projet et "/home/sk/.local/share/virtualenvs/myproject-x7-2XYPN" est mon environnement virtuel.

Vous pouvez utiliser « ls » dans votre virtualenv pour vérifier ce qu'il y a dedans.

$ ls /home/sk/.local/share/virtualenvs/myproject-x7-2XYPN

Mettre à jour les paquets

Pour mettre à jour tous les paquets, exécutez :

$ pipenv update

Cette commande désinstallera tous les paquets et réinstallera le(s) paquet(s) aux dernières versions compatibles.

Vérification de l'intégrité d'un paquet

Vous vous demandez s'il existe des vulnérabilités de sécurité dans les packages installés ? Aucun problème ! Pipenv vous couvre. Pour vérifier l'intégrité des packages, il suffit d'exécuter la commande suivante :

$ pipenv check
Checking PEP 508 requirements…
Passed!
Checking installed package safety…
All good!

La commande ci-dessus vérifie les vulnérabilités de sécurité et les marqueurs PEP 508 fournis dans le Pipfile.

Voir le graphe de dépendance

Exécutons 'pipenv graph' et voyons ce qui se passe.

$ pipenv graph

Comme vous pouvez le voir, cette commande affiche le graphe des dépendances.

Désinstaller un paquet

Pour supprimer un paquet, exécutez :

$ pipenv uninstall requests
Un-installing speedtest-cli…
Uninstalling speedtest-cli-1.0.7:
 Successfully uninstalled speedtest-cli-1.0.7

Removing speedtest-cli from Pipfile…
Locking [dev-packages] dependencies…
Locking [packages] dependencies…
Updated Pipfile.lock (c23e27)!

Pour tout désinstaller, exécutez :

$ pipenv uninstall --all
Un-installing all packages from virtualenv…
Found 1 installed package(s), purging…

Environment now purged and fresh!

Pour plus de détails, exécutez :

$ pipenv -h

Ou,

$ pipenv --man

D'après mes tests, Pipenv est beaucoup plus facile à utiliser que pip. Comme il est officiellement recommandé par Python.org, vous pouvez désormais vous débarrasser complètement de venv et virtualenv lors de l'installation des paquets Python.

Lecture suggérée :

  • Pipx – Installer et exécuter des applications Python dans des environnements isolés

Ressources :

  • Page GitHub de Pipenv
  • Site web de Pipenv