Gérer les packages requis avec requirements.txtManage required packages with requirements.txt

Si vous partagez un projet avec d’autres utilisateurs, à l’aide d’un système de génération, ou si vous envisagez de le publier sur Microsoft Azure, vous devez spécifier les packages externes que le projet requiert.If you're sharing a project with others, using a build system, or plan to publish it to Microsoft Azure, you need to specify the external packages that the project requires. L’approche recommandée consiste à utiliser un fichier requirements.txt (readthedocs.org) qui contient une liste de commandes pour pip qui installe les versions requises des packages dépendants.The recommended approach is to use a requirements.txt file (readthedocs.org) that contains a list of commands for pip that installs the required versions of dependent packages.

Techniquement, vous pouvez utiliser n’importe quel nom de fichier pour suivre les exigences (à l’aide de -r <full path to file> durant l’installation d’un package), mais Visual Studio fournit une prise en charge spécifique pour requirements.txt :Technically, any filename may be used to track requirements (by using -r <full path to file> when installing a package), but Visual Studio provides specific support for requirements.txt:

  • Si vous avez chargé un projet contenant requirements.txt et si vous souhaitez installer tous les packages listés dans ce fichier, développez le nœud Environnements Python dans l’Explorateur de solutions, puis cliquez avec le bouton droit sur un nœud d’environnement et sélectionnez Installer à partir de requirements.txt :If you've loaded a project that contains requirements.txt and wish to install all the packages listed in that file, expand the Python Environments node in Solution Explorer, then right-click an environment node and select Install from requirements.txt:

    Installer à partir de requirements.txt

  • Si vous avez déjà installé tous les packages nécessaires dans un environnement, cliquez avec le bouton droit sur celui-ci dans l’Explorateur de solutions, puis sélectionnez Générer requirements.txt pour créer le fichier nécessaire.If you already have all the necessary packages installed in an environment, you can right-click that environment in Solution Explorer and select Generate requirements.txt to create the necessary file. Si le fichier existe déjà, une invite s’affiche sur le mode de mise à jour :If the file already exists, a prompt appears for how to update it:

    Options de mise à jour pour requirements.txt

    • Replace entire file (Remplacer l’intégralité du fichier) supprime tous les éléments, commentaires et options qui existent.Replace entire file removes all items, comments, and options that exist.
    • Actualiser les entrées existantes détecte les spécifications du package et met à jour les spécificateurs de version pour qu’ils correspondent à la version actuellement installée.Refresh existing entries detects package requirements and updates the version specifiers to match the version you currently have installed.
    • Update and add entries (Mettre à jour et ajouter des entrées) actualise les spécifications trouvées et ajoute tous les autres packages à la fin du fichier.Update and add entries refreshes any requirements that are found, and adds all other packages to the end of the file.

Dans la mesure où les fichiers requirements.txt sont destinés à figer les exigences d’un environnement, tous les packages installés sont écrits avec des versions précises.Because requirements.txt files are intended to freeze the requirements of an environment, all installed packages are written with precise versions. L’utilisation de versions précises vous assure une reproduction simple de votre environnement sur un autre ordinateur.Using precise versions ensures that you can easily reproduce your environment on another computer. Les packages sont inclus même s’ils ont été installés avec une plage de versions, en tant que dépendance d’un autre package, ou avec un programme d’installation autre que pip.Packages are included even if they were installed with a version range, as a dependency of another package, or with an installer other than pip.

Si un package ne peut pas être installé par pip et s’il apparaît dans un fichier requirements.txt, cela entraîne l’échec de l’ensemble de l’installation.If a package cannot be installed by pip and it appears in a requirements.txt file, the entire installation fails. Dans ce cas, modifiez manuellement le fichier à exclure de ce package ou utilisez les options de pip pour faire référence à une version installable du package.In this case, manually edit the file to exclude this package or to use pip's options to refer to an installable version of the package. Par exemple, vous préférez peut-être utiliser pip wheel pour compiler une dépendance, et ajouter l’option --find-links <path> au fichier requirements.txt :For example, you may prefer to use pip wheel to compile a dependency and add the --find-links <path> option to your requirements.txt:

C:\Project>pip wheel azure
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...

C:\Project>type requirements.txt
--find-links wheelhouse
--no-index
azure==0.8.0

C:\Project>pip install -r requirements.txt -v
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...

Voir aussiSee also