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.
Connectez-vous à votre organisation Azure DevOps, puis accédez à votre projet.
Sélectionnez Artifacts, puis sélectionnez Créer un flux.
Entrez les informations suivantes pour votre flux :
- Entrez un nom descriptif pour votre flux.
- Définissez sa visibilité (indiquant qui peut afficher les packages dans le flux).
- Indiquez s’il faut utiliser des packages à partir de sources publiques telles que pypi.org.
- Spécifiez l’étendue de votre flux.
Sélectionnez Créer.
Accédez à votre collection Azure DevOps, sélectionnez votre projet.
Sélectionnez Artifacts, puis sélectionnez Créer un flux.
Entrez les informations suivantes pour votre flux :
- Entrez un nom descriptif pour votre flux.
- Définissez sa visibilité (indiquant qui peut afficher les packages dans le flux).
- Indiquez s’il faut utiliser des packages à partir de sources publiques telles que pypi.org.
- Spécifiez l’étendue de votre flux.
Sélectionnez Créer.
Accédez à votre collection Azure DevOps, sélectionnez votre projet.
Sélectionnez Artefacts, puis créez un flux pour créer un flux.
Entrez les informations suivantes pour votre flux :
- Entrez un nom descriptif pour votre flux.
- Définissez sa visibilité (indiquant qui peut afficher les packages dans le flux).
- Indiquez s’il faut utiliser des packages à partir de sources publiques telles que pypi.org.
- Spécifiez l’étendue de votre flux.
Sélectionnez Créer.
Accédez à votre collection Azure DevOps, sélectionnez votre projet.
Sélectionnez Artefacts, puis créez un flux pour créer un flux.
Entrez les informations suivantes pour votre flux :
- Entrez un nom descriptif pour votre flux.
- Définissez sa visibilité (indiquant qui peut afficher les packages dans le flux).
- Choisissez s’il faut utiliser des packages à partir de sources publiques telles que pypi.org.
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.
Accédez au référentiel GitHub suivant :
https://github.com/microsoft/python-package-template
Dupliquez le dépôt sur votre compte GitHub.
Accédez à votre dépôt fourche, puis sélectionnez Code.
Copiez l’URL de votre dépôt fourche.
À 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>
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 :
- Utilisez le package de clés d’artefacts, qui configure automatiquement l’authentification pour vous.
- 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
Sélectionnez Connecter à alimenter à partir de votre flux.
Sélectionnez jumeau et copiez l’URL du référentiel dans la section Installation de Project.
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.
Accédez à votre projet Azure DevOps et sélectionnez Artefacts.
Sélectionnez votre flux et sélectionnez Connecter à alimenter.
Sélectionnez twine sous la section Python .
Sur votre ordinateur de développement, vérifiez que twine est installé.
pip install --upgrade twine
Suivez les instructions de la section d’installation de Project pour configurer votre
.pypirc
fichier.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>
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
Dans votre projet, sélectionnez Artefacts , puis votre flux.
Sélectionnez Se connecter au flux.
Sélectionnez pip sous la section Python .
Préparez votre environnement Python local.
Vérifiez que pip est installé et à jour :
python -m pip install --upgrade pip
Pour créer et activer un environnement virtuel Python :
python -m venv myenv myenv/Scripts/activate
Copiez la
index-url
section de configuration du projet de la boîte de dialogue Connecter pour le flux.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
Accédez à votre projet Azure DevOps et sélectionnez Artefacts.
Sélectionnez votre flux et sélectionnez Connecter à alimenter.
Sélectionnez pip sous la section Python .
Préparez votre environnement Python local.
Vérifiez que pip est installé et à jour :
python -m pip install --upgrade pip
Créez et activez un environnement virtuel Python :
python -m venv myenv myenv/Scripts/activate
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.
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>
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>