Publier et consommer des packages Python à l’aide de la ligne de commande (CLI)

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

Azure Artifacts vous permet de créer, d’héberger et de partager des packages Python avec votre équipe ou organisation. Vous pouvez publier et consommer des packages Python à l’aide d’un flux Azure Artifacts à partir de la ligne de commande dans votre environnement de développement local.

Dans cet article, vous apprendrez comment :

  • Créez un flux Azure Artifacts.
  • Configurez l’authentification avec le package de clés d’artefacts Python ou un jeton d’accès personnel (PAT).
  • Publiez des packages Python sur votre flux.
  • Consommez des packages Python à partir de votre flux.

Pour publier et consommer des packages dans azure Pipelines, consultez Publier des packages Python avec Azure Pipelines.

Prérequis

Pour exécuter les étapes suivantes, vous devez disposer des éléments suivants :

  • Une organisation Azure DevOps. Créez-en un gratuitement.
  • Jeton d’accès personnel (PAT) avec étendue de lecture de package>. Pour en créer un, consultez Créer un pat.
  • Un projet Azure DevOps. Si vous n’en avez pas, créez un projet.
  • Python 3.9 ou version ultérieure installée sur votre ordinateur local. Téléchargez Python ici.
  • pip 24.0 et twine 5.0.0 ou version ultérieure.
  • Package Python à publier à partir de votre ordinateur local sur votre flux.
  • Si vous utilisez l’exemple de package Python :
    • Un compte GitHub. Créez un compte GitHub gratuit si vous n’en avez pas déjà un.
    • git installé sur votre ordinateur local.
  • Un compte GitHub. Créez un compte GitHub gratuit si vous n’en avez pas déjà un.
  • Accès à une collection Azure DevOps Server.
  • Jeton d’accès personnel (PAT) avec étendue de lecture de package>. Pour en créer un, consultez Créer un pat.
  • Un projet Azure DevOps. Si vous n’en avez pas, créez un projet.
  • Python 3.9 ou version ultérieure installée dans votre environnement de développement local.
  • pip 24.0 et twine 5.0.0 ou version ultérieure.
  • Si vous utilisez l’exemple de package Python :
    • Un compte GitHub. Créez un compte GitHub gratuit si vous n’en avez pas déjà un.
    • git installé sur votre ordinateur local.

Créer un flux Azure Artifacts

Si vous n’avez pas de flux, procédez comme suit pour en créer un.

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

  2. Sélectionnez Artifacts, puis sélectionnez Créer un flux.

    A screenshot showing how to create a feed.

  3. Entrez les informations suivantes pour votre flux :

    1. Entrez un nom descriptif pour votre flux.
    2. Définissez sa visibilité (indiquant qui peut afficher les packages dans le flux).
    3. Indiquez s’il faut utiliser des packages à partir de sources publiques telles que pypi.org.
    4. Spécifiez l’étendue de votre flux.
  4. Sélectionnez Créer.

  1. Accédez à votre collection Azure DevOps, sélectionnez votre projet.

  2. Sélectionnez Artifacts, puis sélectionnez Créer un flux.

    A screenshot showing how to create a feed in DevOps Server.

  3. Entrez les informations suivantes pour votre flux :

    1. Entrez un nom descriptif pour votre flux.
    2. Définissez sa visibilité (indiquant qui peut afficher les packages dans le flux).
    3. Indiquez s’il faut utiliser des packages à partir de sources publiques telles que pypi.org.
    4. Spécifiez l’étendue de votre flux.
  4. Sélectionnez Créer.

  1. Accédez à votre collection Azure DevOps, sélectionnez votre projet.

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

  3. Entrez les informations suivantes pour votre flux :

    1. Entrez un nom descriptif pour votre flux.
    2. Définissez sa visibilité (indiquant qui peut afficher les packages dans le flux).
    3. Indiquez s’il faut utiliser des packages à partir de sources publiques telles que pypi.org.
    4. Spécifiez l’étendue de votre flux.
  4. Sélectionnez Créer.

  1. Accédez à votre collection Azure DevOps, sélectionnez votre projet.

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

  3. Entrez les informations suivantes pour votre flux :

    1. Entrez un nom descriptif pour votre flux.
    2. Définissez sa visibilité (indiquant qui peut afficher les packages dans le flux).
    3. Choisissez s’il faut utiliser des packages à partir de sources publiques telles que pypi.org.
  4. Sélectionnez Créer.

Créer un package Python local

Vous avez besoin d’un package Python pour publier sur votre flux. Si vous n’avez pas de package à publier, vous pouvez cloner un exemple de package Python à partir de GitHub.

Cloner l’exemple de package Python

Procédez comme suit pour utiliser l’exemple de package Python à partir de GitHub.

  1. Accédez au référentiel GitHub suivant :

    https://github.com/microsoft/python-package-template
    
  2. Dupliquez le dépôt sur votre compte GitHub.

  3. Accédez à votre dépôt fourche, puis sélectionnez Code.

  4. Copiez l’URL de votre dépôt fourche.

  5. À partir d’une interface CLI sur votre ordinateur local, clonez le référentiel sur votre ordinateur local à l’aide de l’URL que vous avez copiée à partir de votre dépôt fourche.

    git clone <REPOSITORY_URL>
    
  6. Remplacez le répertoire par votre référentiel cloné.

    cd python-package-template
    

Générer votre package

Pour générer votre roue et votre distribution source, exécutez les commandes suivantes dans le répertoire de votre projet :

pip install --upgrade build
python -m build

Si votre projet Python a un setup.py fichier, vous pouvez utiliser la commande suivante pour générer votre package :

python setup.py sdist bdist_wheel

Se connecter au flux

Il existe deux façons principales de se connecter à un flux pour publier ou consommer vos packages Python :

  1. Utilisez le package de clés d’artefacts, qui configure automatiquement l’authentification pour vous.
  2. Configurez manuellement les informations d’identification avec un PAT.

Remarque

Le keyring d’artefacts n’est pas pris en charge sur les versions plus récentes d’Ubuntu.

Remarque

Si votre organisation utilise un pare-feu ou un serveur proxy, veillez à autoriser les URL et adresses IP du domaine Azure Artifacts.

Configurer le keyring d’artefacts pour l’authentification

Le package artefacts-keyring fonctionne avec le package de keyring Python pour vous permettre de configurer l’authentification pour publier et consommer vos packages Python vers et à partir de votre flux. Pip et twine utilisent le package de trousseaux Python pour rechercher les informations d’identification.

Important

Vous devez avoir pip 19.2 et twine 1.13.0 ou version ultérieure pour utiliser le keyring d’artefacts. Pour plus d’informations, consultez Conditions d’utilisation.

Si vous choisissez d’utiliser le keyring d’artefacts, vous devez installer le package avant de pouvoir l’utiliser.

Dans une fenêtre d’invite de commandes avec élévation de privilèges, exécutez la commande suivante pour installer le package artifacts-keyring :

pip install artifacts-keyring

Publier des packages Python

Vous pouvez publier des packages Python sur votre flux à l’aide du package d’artefacts-keyring ou de l’authentification PAT.

Publier des packages avec artefacts-keyring

  1. Sélectionnez Connecter à alimenter à partir de votre flux.

    A screenshot highlighting the connect to feed.

  2. Sélectionnez jumeau et copiez l’URL du référentiel dans la section Installation de Project.

    A screenshot of instructions to connect to feed with twine.

  3. Pour publier un package dans votre flux, exécutez la commande suivante en <remplaçant FEED_URL> par l’URL du référentiel que vous avez copiée à partir de la boîte de dialogue Connecter de flux :

    twine upload --repository-url <FEED_URL> dist/*
    

Publier des packages avec l’authentification PAT

Utilisez twine pour charger votre package dans votre flux Azure Artifacts.

  1. Accédez à votre projet Azure DevOps et sélectionnez Artefacts.

  2. Sélectionnez votre flux et sélectionnez Connecter à alimenter.

    A screenshot highlighting the connect to feed.

  3. Sélectionnez twine sous la section Python .

    A screenshot highlighting the twine package type.

  4. Sur votre ordinateur de développement, vérifiez que twine est installé.

    pip install --upgrade twine
    
  5. Suivez les instructions de la section d’installation de Project pour configurer votre .pypirc fichier.

    A screenshot highlighting the `.pyirc` file content.

  6. Pour éviter d’avoir à entrer votre jeton d’accès personnel chaque fois que vous publiez un package, vous pouvez ajouter vos informations d’identification au .pypirc fichier. Veillez à ne pas case activée votre jeton d’accès personnel dans un dépôt public.

    Exemple de fichier avec des informations d’identification .pypirc :

    [distutils]
    Index-servers =
        <FEED_NAME>
    
    [<FEED_NAME>]
    Repository = <FEED_URL>
    username = <FEED_NAME>
    password = <YOUR_PERSONAL_ACCESS_TOKEN>
    
  7. Pour charger votre package, exécutez la commande suivante dans le répertoire de votre projet en <remplaçant FEED_NAME> par le nom de votre flux. Sur Windows, vous devrez peut-être spécifier l’emplacement du pypirc fichier avec l’option --config-file .

    twine upload --repository <FEED_NAME> dist/*
    

Utiliser des packages Python

Vous pouvez utiliser des packages Python à partir de votre flux à l’aide du package artefacts-keyring ou de l’authentification PAT.

Consommer des packages avec un keyring d’artefacts

  1. Dans votre projet, sélectionnez Artefacts , puis votre flux.

  2. Sélectionnez Se connecter au flux.

    A screenshot highlighting the connect to feed button.

  3. Sélectionnez pip sous la section Python .

    A screenshot of pip selection in Connect to feed.

  4. Préparez votre environnement Python local.

    1. Vérifiez que pip est installé et à jour :

      python -m pip install --upgrade pip
      
    2. Pour créer et activer un environnement virtuel Python :

      python -m venv myenv
      myenv/Scripts/activate
      
  5. Copiez la index-url section de configuration du projet de la boîte de dialogue Connecter pour le flux.

    A screenshot of the index-url in the Connect to feed dialog.

  6. Pour installer un package à partir de votre flux, exécutez la commande suivante en <remplaçant PACKAGE_NAME> par le nom du package de votre flux et <INDEX_URL> par l’URL d’index que vous avez copiée à partir de la boîte de dialogue Connecter de flux :

    pip install <PACKAGE_NAME> --index-url <INDEX_URL>
    

Lorsque vous vous connectez à Azure DevOps pour la première fois, vous êtes invité à entrer des informations d’identification. Entrez votre nom d’utilisateur (n’importe quelle chaîne) et votre jeton d’accès personnel dans les champs appropriés. Les informations d’identification sont mises en cache localement et utilisées pour vous connecter automatiquement à la prochaine fois que vous utilisez le service.

Consommer des packages avec l’authentification PAT

  1. Accédez à votre projet Azure DevOps et sélectionnez Artefacts.

  2. Sélectionnez votre flux et sélectionnez Connecter à alimenter.

    A screenshot highlighting the connect to feed button.

  3. Sélectionnez pip sous la section Python .

    A screenshot highlighting the pip package type.

  4. Préparez votre environnement Python local.

    1. Vérifiez que pip est installé et à jour :

      python -m pip install --upgrade pip
      
    2. Créez et activez un environnement virtuel Python :

      python -m venv myenv
      myenv/Scripts/activate
      
  5. Ajoutez un fichier pip.ini (Windows) ou pip.conf (Mac/Linux) au répertoire racine de votre environnement virtuel. Copiez le contenu à partir de la section Configuration du projet de l’Connecter pour alimenter la boîte de dialogue et ajoutez-le à votre fichier pip.ini ou pip.conf.

    A screenshot highlighting the pip.ini file content.

  6. Pour éviter d’avoir à entrer votre jeton d’accès personnel chaque fois que vous installez un package à partir de votre flux, vous pouvez ajouter vos informations d’identification au fichier pip.ini ou pip.conf . Veillez à ne pas case activée votre jeton d’accès personnel dans un dépôt public.

    Exemple de fichier pip.ini ou pip.conf avec des informations d’identification :

    [global]
    index-url=https://<FEED_NAME>:<YOUR_PERSONAL_ACCESS_TOKEN>@<FEED_URL>
    
  7. Pour installer votre package, exécutez la commande suivante en <remplaçant PACKAGE_NAME> par le nom du package à partir de votre flux.

    pip install <PACKAGE_NAME>