Le concept derrière ces fichiers est simple et analogue à d'autres outils déjà existants, si vous avez une certaine familiarité avec le Bundler de Ruby ou le Npm de Node. Pipenv
est à la fois un outil de gestion des paquets et des environnements virtuels 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 éléments de base pour vous aider à démarrer, vous en trouverez d'autres sur le site site web pipenv .
Pour commencer
Commencer à utiliser pipenv est facile, dans le dossier de votre projet tapez...
$ pipenv install
... et s'il a déjà un requirements.txt
il générera un fichier Pipfile
avec les exigences et un dossier d'environnement virtuel, sinon, il génèrera un fichier vide Pipfile
fichier. Si vous n'aimez pas ou changez d'avis sur quelque chose que vous avez installé, tapez simplement...
$ pipenv uninstall <package>
... et c'est parti. Pour activer l'environnement virtuel que pipenv a déjà généré, allez avec...
$ pipenv shell
... et votre environnement virtuel sera activé. Pour quitter l'environnement...
$ exit
... et vous serez de retour à votre session de terminal d'origine.
Pipfile
Le site Pipfile est destiné à spécifier les exigences en matière de paquets pour votre application ou bibliothèque Python, tant au niveau du développement que de l'exécution. Vous pouvez installer un paquetage en utilisant simplement...
$ pipenv install flask
... et il sera ajouté comme dépendance pour le déploiement et l'exécution ou en utilisant ...
$ pipenv install --dev pytest
... et il sera utilisé comme dépendance pour le temps de développement. Dans les deux cas, si vous devez être plus précis sur la version du paquet, comme indiqué dans la section documentation pipenv utilise le même spécificateurs de version utilisé par pip. La syntaxe du fichier est assez simple, comme suit.
[[source]] # Here goes your package sources (where you are downloading your packages from).
url = "https://pypi.python.org/simple"
verify_ssl = true
name = "pypi"
[packages] # Here goes your package requirements for running the application and its versions (which packages you will use when running the application).
requests = "*"
flask = "*"
pandas = "*"
[dev-packages] # Here goes your package requirements for developing the application and its versions (which packages you will use when developing the application)
pylint = "*"
wheel = "*"
[requires] # Here goes your required Python version.
python_version = "3.6"
Pipfile.lock
Le site Pipfile.lock est destiné à spécifier, sur la base des paquets présents dans Pipfile Vous pouvez ainsi éviter les risques de mise à jour automatique de paquets qui dépendent les uns des autres et de rupture de l'arbre de dépendance de votre projet.
Vous pouvez verrouiller vos paquets actuellement installés en utilisant...
$ pipenv lock
... et l'outil recherchera votre dossier d'environnement virtuel pour générer automatiquement le fichier de verrouillage pour vous, sur la base des versions actuellement installées. La syntaxe du fichier n'est pas aussi évidente que pour Pipfile Par conséquent, par souci de concision, nous ne l'afficherons pas ici.
3 votes
C'est un analogue direct de
Gemfile
yGemfile.lock
du monde Ruby : Le site.lock
a des versions spécifiques pour chaque dépendance ; celui qui n'a pas cette extension n'a que les versions connues pour contrôler les humains. Cela dit, il est peut-être un peu prématuré de demander une explication sur quelque chose qui est encore en évolution et qui est loin d'être bien défini, et encore moins normalisé.0 votes
(Et de la même manière, la différence entre
Pipfile
yrequirements.txt
est en grande partie que le premier essaie d'adopter des caractéristiques du monde Ruby, c'est-à-dire la possibilité de spécifier des ensembles de dépendances pour plusieurs environnements et avec des conditions/options/etc. dans un seul fichier).3 votes
Il semble qu'il a déjà été déployé dans le dépôt Heroku "getting started with Python" ( github.com/heroku/python-getting-started.git ) donc qu'on le veuille ou non, on dirait que c'est une production.
2 votes
Je t'ai eu. Cela dit, la documentation me semble assez solide. Je ne sais pas ce que je pourrais écrire dans une réponse qui ne ferait pas que les répéter.
0 votes
À quels documents faites-vous référence ?
1 votes
Si vous vous référez au lien que j'ai fait dans l'OP, il y a un certain nombre de choses omises, par exemple ce que cela signifie réellement pour quelque chose d'être dans une section appelée source.
0 votes
Je suggère déposer une question avec le projet, puis en décrivant en détail les éléments spécifiques que la documentation ne couvre pas. De cette façon, vous vous adresserez directement aux personnes qui connaissent le mieux la base de code.
0 votes
Consultez ce lien : docs.pipenv.org