Il semble que Pipfile / Pipfile.lock sont destinés à remplacer requirements.txt, dans le contexte de l'empaquetage Python. Cependant, il n'y a pas beaucoup de documentation sur leur fonctionnement réel. J'ai trouvé une description évolutive de pipfile dans la section PyPi du site Web Python ici, mais elle est assez compliquée et n'explique pas la sémantique des différentes sections du fichier.
Des conseils sur la façon de comprendre ces fichiers?
Gemfile
etGemfile.lock
du monde Ruby: Le.lock
fichier a des versions spécifiques pour chaque dépendance; celui sans cette extension n'a que les versions connues des humains qui contrôlent. Cela dit, demander une explication sur quelque chose qui est encore en évolution et qui est loin d'être bien défini, beaucoup moins standardisé, est peut-être un peu prématuré.Pipfile
etrequirements.txt
est en grande partie que le premier essaie d'adopter des fonctionnalités du monde Ruby, c'est-à-dire être capable de spécifier des ensembles de dépendances pour plusieurs environnements et avec des conditions / options / etc. dans un seul fichier).Réponses:
Le concept derrière ces fichiers est simple et analogue à d'autres outils déjà existants, si vous avez une certaine familiarité avec Ruby's Bundler ou Node's Npm.
Pipenv
est à la fois un outil de gestion de packages et d'environnement virtuel qui utilise les fichiers Pipfile et Pipfile.lock pour atteindre ces objectifs.Pipenv gère l'environnement virtuel pour vous d'une manière standard par défaut (plus besoin d'activer et de désactiver). Ci-dessous, quelques notions de base pour commencer, en savoir plus sur le site Web de pipenv .
Commencer
Commencer à utiliser pipenv est simple, dans le type de dossier de votre projet ...
... et s'il a déjà un
requirements.txt
fichier, il générera unPipfile
fichier avec les exigences et un dossier d'environnement virtuel, sinon, il générera unPipfile
fichier vide . Si vous n'avez pas aimé ou changé d'avis sur quelque chose que vous avez installé, tapez simplement ...... et vous êtes prêt à partir. Pour activer l'environnement virtuel que pipenv a déjà généré, allez avec ...
... et votre environnement virtuel sera activé. Pour quitter l'environnement ...
... et vous serez de retour à votre session de terminal d'origine.
Pipfile
Le fichier Pipfile est destiné à spécifier les exigences des packages pour votre application ou bibliothèque Python, à la fois pour le développement et l'exécution. Vous pouvez installer un package en utilisant simplement ...
... et il sera ajouté en tant que dépendance pour le déploiement et l'exécution ou en utilisant ...
... et il sera utilisé comme une dépendance pour le temps de développement. La syntaxe du fichier est assez simple, comme suit.
Pipfile.lock
Le Pipfile.lock est destiné à spécifier, en fonction des packages présents dans Pipfile , quelle version spécifique de ceux-ci doit être utilisée, en évitant les risques de mise à niveau automatique des packages qui dépendent les uns des autres et de rupture de l'arborescence de dépendances de votre projet.
Vous pouvez verrouiller vos packages actuellement installés en utilisant ...
... et l'outil recherchera votre dossier d'environnement virtuel pour générer automatiquement le fichier de verrouillage pour vous, en fonction des versions actuellement installées. La syntaxe du fichier n'est pas aussi évidente que pour Pipfile , donc par souci de concision, elle ne sera pas affichée ici.
la source
[[source]]
, comme est-ce la source des paquets téléchargés par pipenv ou autre chose? Je suppose que le reste des deux fichiers est assez évident.Pipfile
. Si quelque chose se casse lors d'une mise à niveau d'un package, on devrait alors être en mesure de le réparer en examinant l'historique des versions du package, et en effet, l'un des créateurs de la bibliothèque de requêtes recommande de le faire ici .--skip-lock
drapeau pour le forcer à ignorer lePipfile.lock
fichier plutôt que de le forcer à l'utiliser;)