Utiliser des packages à partir de l’index de package Python (PyPI)

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019

À l’aide d’Azure Artifacts, les développeurs peuvent publier et consommer des packages à partir de flux Azure Artifacts et de registres externes tels que pypi.org. Cet article vous guide tout au long de la configuration de votre projet et de l’utilisation de la ligne de commande pour consommer efficacement des packages Python à partir de PyPI.

Dans cet article, vous allez apprendre à :

  • Activer amont sources pour votre flux
  • Ajouter PyPI en tant que source amont
  • Configurer votre projet
  • Installer des packages à partir de l’index de package Python

Prérequis

  • Un organization Azure DevOps et un projet. Créez un organization ou un projet si ce n’est pas déjà fait.

  • Un flux Azure Artifacts.

  • Téléchargez Python.

Activer les sources amont

Si vous n’avez pas encore créé de flux, suivez les étapes ci-dessous pour en créer un nouveau. Veillez à case activée la zone pour amont sources afin d’activer amont sources. Si vous disposez déjà d’un flux, passez à l’étape suivante pour ajouter PyPI en tant que source amont.

  1. Connectez-vous à votre organisation Azure DevOps puis accédez à votre projet.

  2. Sélectionnez Artefacts, puis créez un flux pour créer un flux.

  3. Entrez un nom descriptif pour votre flux et définissez sa visibilité (indiquant qui peut afficher les packages dans le flux). Spécifiez l’étendue de votre flux, puis case activée les sources en amont case activée box pour inclure des packages à partir de registres publics.

  4. Sélectionnez Créer lorsque vous avez terminé.

    A screenshot showing how to create a need feed.

Ajouter amont PyPI

Si vous avez sélectionné les sources amont case activée box lors de la création de votre flux, PyPI doit avoir été automatiquement inclus en tant que source amont. Si ce n’est pas le cas, vous pouvez l’ajouter manuellement en procédant comme suit :

  1. Connectez-vous à votre organisation Azure DevOps puis accédez à votre projet.

  2. Sélectionnez Artefacts, puis sélectionnez l’icône gear icon d’engrenage pour accéder au flux Paramètres.

  3. Sélectionnez sources en amont, puis ajoutez en amont pour ajouter une nouvelle source de amont.

  4. Sélectionnez Source publique, puis pyPI (https://pypi.org/) dans le menu déroulant.

  5. Sélectionnez Enregistrer lorsque vous avez terminé, puis sélectionnez Enregistrer une fois de plus dans le coin supérieur droit pour enregistrer vos modifications.

S’authentifier avec votre flux

  1. Vérifiez que vous avez téléchargé Python, puis exécutez la commande suivante pour mettre à niveau votre gestionnaire de package Python :

    python -m pip install --upgrade pip
    
  2. Exécutez la commande suivante pour installer le keyring Azure Artifacts :

    pip install keyring artifacts-keyring
    
  3. Créez un jeton d’accès personnel avec l’étendue De lecture d’empaquetage>pour vous authentifier auprès d’Azure DevOps. La première fois que vous vous connectez à Azure DevOps, vous devez entrer vos informations d’identification lorsque vous y êtes invité. Fournissez votre nom d’utilisateur (n’importe quelle chaîne) et votre jeton d’accès personnel dans les champs désignés. Ces informations d’identification sont mises en cache localement et automatiquement utilisées pour vous connecter à la prochaine fois que vous utilisez le service.

  4. Accédez au dossier de votre projet, puis exécutez la commande suivante pour créer un environnement virtuel :

    python -m venv <VIRTUAL_ENVIRONMENT_NAME>
    
  5. Créez un fichier pip.ini (Windows) ou un fichier pip.conf (Mac/Linux) dans votre environnement virtuel, puis collez l’extrait de code suivant dans votre fichier. Veillez à remplacer les espaces réservés par les informations appropriées et à ne pas valider ce fichier dans un dépôt public, car il contient votre jeton d’accès personnel.

    • Flux dans l’étendue du projet :

      [global]
      extra-index-url=https://<FEED_NAME>:<YOUR_PERSONAL_ACCESS_TOKEN>@pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/pypi/simple/
      
    • Flux d’étendue de l’organisation :

      [global]
      extra-index-url=https://<FEED_NAME>:<YOUR_PERSONAL_ACCESS_TOKEN>@pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/pypi/simple/
      

Installer des packages à partir de PyPI

Maintenant que nous avons configuré notre projet pour l’authentification avec notre flux, nous pouvons commencer à installer des packages à partir du amont PyPI. Dans cet exemple, nous allons installer Flask:

  1. Dans une fenêtre d’invite de commandes, accédez au dossier de votre projet et exécutez la commande suivante pour activer votre environnement virtuel. Remplacez l’espace réservé par le nom de l’environnement virtuel que vous avez créé précédemment :

    <YOUR_VIRTUAL_ENVIRONMENT_NAME>/Scripts/Activate.ps1
    
  2. Exécutez la commande suivante pour case activée les packages installés dans votre environnement virtuel :

    pip list
    
  3. Exécutez la commande suivante pour installer Flask.

    pip install -U Flask
    
  4. Une fois votre package installé, Azure Artifacts enregistre une copie de ce package dans votre flux. Votre package doit être disponible dans votre flux, comme illustré dans la capture d’écran ci-dessous.

    A screenshot showing packages installed from PyPI upstream.