Votre navigateur n'est pas à jour !

Merci de mettre à jour votre navigateur pour utiliser mon blog. Mettre à jour mon navigateur maintenant

×

Python - Gestion de dépendances avec Git dans pipenv

Date de publication 31 juil. 2018
pipenv est un outil python permettant de gérer vos projets python isolés de l'hôte avec des variables environnements pour notamment protéger vos secrets. Il comporte aussi un gestionnaire de dépendences hérité de pip. Ce dernier point est pratique car il gère les dépendances de dev et prod comme le fait npm par exemple. pip ne gère pas cette distinction dans son fichier requierements.txt
Pipenv introduit des nouvelles commandes pour gérer son environnement virtuel auparavant géré avec virtualenv.
Je ne vais pas décrire toutes les possibilités de pipenv mais putôt me pencher sur la gestion des dépendences git d'un repo privé.
En effet par défaut pipenv cherche les packages dans pypi,
ainsi lorsque vous voulez obtenir un package en dehors de ce dépot vous allez devoir suivres quelques étapes.

Tout d'abord il faut créer un fichier setup.py à la racine du projet que vous souhaitez récupérer
Cela permet d'obtenir les metadata du package afin notamment de gérer les dépendances.
Ensuite on installe le package en question
Dans la commande ci dessus on utilise l'option e qui permet de définir le mode édition. Pipenv a besoin forcement de cette option afin de résoudre les dépendences (définit dans le setup.py).

Vous remarquez aussi des secrets, le login et mdp sont issue de Gitlab. En effet j'ai crée un token de deploiement (deploy token) dans le but de donner accès au projet uniquemlent en lecture.

Création d'un token de déploiement

Si vous avez plusieurs projets qui ont besoin de ce package je vous conseille de créer un nouveau token de déploiment comme cela lorsque vous aurez besoin de supprimer un accès il suffira simplement de revoquer le token dans Gitlab et les autres projets pourront encore obtenir les mise à jours.
Liste des token de déploiement

Cette commande contient aussi la branche à récupérer, elle est placé après le 2ème arobase : prod
Et enfin le nom du projet my-pck qui est inscrit après #egg=

Maintenant il reste plus qu'à lancer les commandes pipenv
blog comments powered by Disqus