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 ...
$ pipenv install
... et s'il a déjà un requirements.txt
fichier, il générera un Pipfile
fichier avec les exigences et un dossier d'environnement virtuel, sinon, il générera un Pipfile
fichier vide . Si vous n'avez pas aimé ou changé d'avis sur quelque chose que vous avez installé, tapez simplement ...
$ pipenv uninstall <package>
... et vous êtes prêt à partir. 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 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 ...
$ pipenv install flask
... et il sera ajouté en tant que dépendance pour le déploiement et l'exécution ou en utilisant ...
$ pipenv install --dev pytest
... et il sera utilisé comme une dépendance pour le temps de développement. 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 packaes you will use when developing the application)
pylint = "*"
wheel = "*"
[requires] # Here goes your required Python version.
python_version = "3.6"
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 ...
$ pipenv lock
... 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.
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é.