L'autre jour, nous avons publié un guide du débutant pour gérer les packages Python à l'aide de PIP . Dans ce guide, nous avons expliqué comment installer pip et comment installer, mettre à jour et désinstaller les packages Python à l'aide de pip. Nous avons également discuté de l'importance des environnements virtuels et de la manière de créer un environnement virtuel à l'aide des outils venv et virtualvnv. Aujourd'hui, nous allons découvrir un autre gestionnaire de packages python nommé pipenv . Il s'agit du nouvel outil Python Packaging recommandé par Python.org. Il peut être utilisé pour installer et gérer facilement les dépendances Python sans avoir à créer d'environnements virtuels. Pipenv crée et gère automatiquement un virtualenv pour vos projets. Il ajoute/supprime également des packages de votre Pipfile lorsque vous installez/désinstallez des packages.
Pourquoi Pipenv ?
Pipenv résout les problèmes en temps réel suivants :
- Vous n'avez plus besoin de créer un environnement virtuel. Pipenv créera automatiquement virtualenv pour vos projets. Pour faire simple, pip et virtualenv fonctionnent ensemble.
- Gérer un requirements.txt peut être problématique, donc Pipenv utilise les prochains Pipfile et Pipfile.lock à la place, ce qui est supérieur pour les cas d'utilisation de base.
- C'est sécurisé. Les hachages sont utilisés partout, toujours. Exposez automatiquement les failles de sécurité.
- Consultez le graphique de dépendance à tout moment.
- Rationnalisez le workflow de développement en chargeant des fichiers .env.
Eh bien, commençons.
Installez Pipenv, l'outil d'empaquetage Python officiellement recommandé
Il existe de nombreuses façons d'installer Pipenv. Nous verrons deux méthodes officiellement recommandées.
1. Installer pipenv en utilisant pip
La méthode officielle recommandée consiste à 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 à l'échelle du système). 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 d'utilisateurs à votre CHEMIN. Si vous ne connaissez pas votre base d'utilisateurs, exécutez la commande suivante pour le savoir :
$ python -m site --user-base
Vous verrez une sortie comme ci-dessous.
/home/sk/.local
Comme vous pouvez le voir dans la sortie ci-dessus, mon répertoire de base d'utilisateurs est /home/sk/.local , et le répertoire binaire de ma base est /home/sk/.local/bin . Dégager? Bon. Maintenant, ajoutez ceci à votre PATH. Pour ce faire, modifiez votre ~/.profile fichier :
$ vi ~/.profile
Ajoutez cette ligne à la fin :
export PATH="$HOME/.local/bin:$PATH"
Appuyez sur ESC clé 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 avec 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, exécutez simplement :
$ pipsi upgrade pipenv
Gérer les packages Python à l'aide de Pipenv
Exécutez 'pipenv' dans votre shell pour afficher la liste des commandes disponibles et des options générales.
$ pipenv
Exemple de sortie :
Installer des packages
Créez un nouveau projet ou accédez au répertoire du projet existant.
$ mkdir myproject $ cd myproject
Installez les packages pour votre projet :
$ pipenv install requests
Quand 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 package nouvellement installé, telles que le nom, la version, etc. Vous pouvez utiliser ce Pipfile pour suivre les dépendances dont votre projet a besoin lorsque vous souhaitez réinstaller ou partager le projet avec d'autres.
$ cat Pipfile
Et, le Pipfile.lock contient vos informations système, toutes les dépendances du package installé, y compris leur version, et tous les hachages pour tous les packages installés et leurs dépendances.
$ cat Pipfile.lock
Installez maintenant un autre package et vérifiez à nouveau le contenu des deux fichiers. Vous remarquerez que le Pidfile contient maintenant deux packages. Et, Pidfile.lock contient toutes les dépendances des packages installés, y compris leur version, et tous les hachages pour tous les packages installés et leurs dépendances. Pour faire simple, ces deux fichiers seront mis à jour automatiquement chaque fois que vous installez un nouveau package.
As-tu remarqué? Je n'ai créé aucun environnement virtuel. Pipenv a automatiquement créé un environnement virtuel pour mon projet. Vous vous demandez où sont stockés vos projets ? Exécutez simplement cette commande pour connaître l'emplacement de votre environnement virtuel.
$ pipenv --venv /home/sk/.local/share/virtualenvs/myproject-x7-2XYPN
Pour afficher les détails de la maison de votre projet, exécutez :
$ pipenv --where /home/sk/myproject
Comme vous pouvez dans les deux sorties, "/home/sk/myproject" est le répertoire personnel de mon projet et "/home/sk/.local/share/virtualenvs/myproject-x7-2XYPN" est mon environnement virtuel.
Vous pouvez "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 packages
Pour mettre à jour tous les packages, exécutez :
$ pipenv update
Cette commande désinstallera tous les packages et réinstallera le(s) package(s) vers les dernières versions compatibles.
Vérifier l'intégrité d'un paquet
Êtes-vous inquiet s'il existe des failles de sécurité dans les packages installés ? Aucun problème! Pipenv vous soutient. Pour vérifier l'intégrité des packages, exécutez simplement 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.
Afficher le graphique de dépendance
Exécutons 'pipenv graph' et voyons ce qui se passe.
$ pipenv graph
Comme vous pouvez le voir, cette commande affiche le graphique de dépendance.
Désinstaller un package
Pour supprimer un package, 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 ce que j'ai testé, 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 de packages Python.
Suggestion de lecture :
- Pipx – Installer et exécuter des applications Python dans des environnements isolés