Gérer les packages Python requis avec requirements.txt
Si vous partagez votre projet Python avec d’autres personnes, ou utilisez un système de construction pour produire votre application Python, vous devez spécifier tous les paquets externes nécessaires. Lorsque vous prévoyez de copier votre projet dans d’autres emplacements où vous devez restaurer un environnement, vous devez également définir les paquets dépendants requis.
L’approche recommandée pour spécifier les paquets Python dépendants externes est d’utiliser un fichier de besoins (readthedocs.org). Ce fichier contient une liste de commandes pip qui installent toutes les versions requises des paquets dépendants pour votre projet. La commande la plus courante est pip freeze > requirements.txt
. Cette commande enregistre la liste des paquets actuels de votre environnement dans le fichier requirements.txt
.
Un fichier de besoins contient les versions précises de tous les paquets installés. Vous pouvez utiliser les fichiers de besoins pour figer les besoins d’un environnement. En utilisant des versions précises de paquets, vous pouvez facilement reproduire votre environnement sur un autre ordinateur. Les fichiers de besoins incluent les paquets même s’ils sont installés avec une plage de versions, en tant que dépendance d’un autre paquet, ou avec un installateur autre que pip.
Prérequis
Visual Studio installé avec le support pour les charges de travail Python. Pour plus d’informations, veuillez consulter la rubrique Installer le support Python dans Visual Studio.
Un fichier de besoins. Vous pouvez utiliser un fichier de besoins existant ou générer un fichier comme décrit dans cet article.
Techniquement, n’importe quel nom de fichier peut être utilisé pour suivre les besoins. Cependant, Visual Studio fournit un support spécifique pour le fichier de besoins nommé « requirements.txt ». Vous pouvez utiliser l’argument -r <full path to file>
lorsque vous installez un paquet pour spécifier votre nom préféré pour le fichier.
Installer les dépendances listées dans requirements.txt
Si vous chargez un projet qui a un fichier requirements.txt
, vous pouvez installer toutes les dépendances de paquet listées dans le fichier.
Dans l’Explorateur de solutions, développez le projet, puis développez le nœud Environnements Python.
Localisez le nœud d’environnement pour lequel vous souhaitez installer les paquets. Cliquez droit sur le nœud, et sélectionnez Installer à partir de requirements.txt.
Vous pouvez surveiller le processus d’installation des paquets dans la fenêtre Sortie :
La sortie liste tous les paquets requis qui sont installés, ainsi que toutes les mises à jour requises pour les commandes pip affectées et la disponibilité de nouvelles versions de pip.
Installer les dépendances dans un environnement virtuel
Vous pouvez également installer les dépendances de paquet Python dans un environnement virtuel existant.
Dans l’Explorateur de solutions, développez votre projet, puis développez le nœud Environnements Python.
Localisez le nœud d’environnement virtuel pour lequel vous souhaitez installer les paquets. Cliquez droit sur le nœud, et sélectionnez Installer à partir de requirements.txt.
Si vous avez besoin de créer un environnement virtuel, consultez Utiliser les environnements virtuels.
Générer le fichier requirements.txt
Si tous les paquets Python nécessaires pour votre projet sont déjà installés dans un environnement, vous pouvez générer le fichier requirements.txt
dans Visual Studio.
Dans l’Explorateur de solutions, développez votre projet, puis développez le nœud Environnements Python.
Localisez le nœud d’environnement pour lequel vous souhaitez générer le fichier de besoins. Faites un clic droit sur le nœud, et sélectionnez Générer requirements.txt.
Rafraîchir ou ajouter des entrées à un fichier requirements.txt existant
Si le fichier requirements.txt
existe déjà, Visual Studio affiche une invite avec plusieurs options :
- Remplacer le fichier entier : écraser tous les éléments, commentaires et options définis dans le fichier
requirements.text
. - Rafraîchir les entrées existantes : mettre à jour les spécificateurs de version dans le fichier
requirements.text
pour correspondre à la version actuellement installée. - Mettre à jour et ajouter des entrées : rafraîchir les besoins existants dans le fichier
requirements.text
, et ajouter toutes les nouvelles exigences de paquet à la fin du fichier.
Visual Studio exécute pip
pour détecter les besoins actuels en paquets pour l’environnement, puis met à jour votre fichier requirements.txt
en fonction de votre sélection.
Installer manuellement les dépendances de paquet
Si pip n’installe pas une dépendance de package définie dans votre fichier requirements.txt
, l’ensemble de l’installation échoue.
Vous avez deux options pour résoudre ce problème :
Modifier manuellement le fichier
requirements.txt
pour exclure le paquet échoué, puis relancer le processus d’installation.Utiliser les options de commande pip pour faire référence à une version installable du paquet.
Mettre à jour le fichier de besoins avec pip wheel
Si vous utilisez la commande pip wheel
pour compiler une dépendance, vous pouvez ajouter l’option --find-links <path>
à votre fichier requirements.txt
.
Exécutez la commande
pip wheel
pour compiler la liste des dépendances requises :pip wheel azure
La sortie montre les roues construites pour les paquets collectés :
Downloading/unpacking azure Running setup.py (path:C:\Project\env\build\azure\setup.py) egg_info for package azure Building wheels for collected packages: azure Running setup.py bdist_wheel for azure Destination directory: c:\project\wheelhouse Successfully built azure Cleaning up...
Ajoutez les options
find-links
etno-index
, ainsi que l’exigence de version du paquet à votre fichierrequirements.txt
:type requirements.txt --find-links wheelhouse --no-index azure==0.8.0
Exécutez le processus d’installation pip avec votre fichier de besoins mis à jour :
pip install -r requirements.txt -v
La sortie suit la progression du processus d’installation :
Downloading/unpacking azure==0.8.0 (from -r requirements.txt (line 3)) Local files found: C:/Project/wheelhouse/azure-0.8.0-py3-none-any.whl Installing collected packages: azure Successfully installed azure Cleaning up... Removing temporary dir C:\Project\env\build...