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

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.

  1. Dans l’Explorateur de solutions, développez le projet, puis développez le nœud Environnements Python.

  2. 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.

    Capture d’écran montrant comment installer des packages Python à partir d’un fichier texte requis dans Visual Studio 2019.

    Capture d’écran montrant comment installer des packages Python à partir d’un fichier texte requis dans Visual Studio 2022.

  3. Vous pouvez surveiller le processus d’installation des paquets dans la fenêtre Sortie :

    Capture d’écran montrant la sortie de l’installation des packages Python à partir d’un fichier texte requis.

    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.

  1. Dans l’Explorateur de solutions, développez votre projet, puis développez le nœud Environnements Python.

  2. 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.

  1. Dans l’Explorateur de solutions, développez votre projet, puis développez le nœud Environnements Python.

  2. 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.

    Capture d’écran montrant comment générer un fichier texte requis pour les dépendances de package Python dans Visual Studio 2019.

    Capture d’écran montrant comment générer un fichier texte requis pour les dépendances de package Python dans Visual Studio 2022.

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 :

Capture d’écran de l’invite affichée lorsque le fichier texte requis existe déjà, avec des options pour mettre à jour ou ajouter des entrées, ou remplacer le fichier.

  • 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.

  1. 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...
    
  2. Ajoutez les options find-links et no-index, ainsi que l’exigence de version du paquet à votre fichier requirements.txt :

    type requirements.txt
    --find-links wheelhouse
    --no-index
    azure==0.8.0
    
  3. 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...