Condividi tramite


Pubblicare e scaricare pacchetti Python con Azure Artifacts

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

Con Azure Artifacts è possibile pubblicare e scaricare pacchetti da feed e registri pubblici, ad esempio PyPi. Questa guida introduttiva illustra come creare un feed, configurare il progetto e gestire i pacchetti Python nel feed di Azure Artifacts.

Prerequisiti

Prodotto Requisiti
Azure DevOps - Un'organizzazione di Azure DevOps.
- Un progetto Azure DevOps .
- Scaricare e installare Python.

Ottenere il codice

  1. Se non si ha un progetto Python personalizzato, è possibile usare il progetto Python di esempio seguente. In caso contrario, è possibile passare alla sezione successiva:

    https://github.com/Azure-Samples/azure-stack-hub-flask-hello-world
    
  2. Per creare la ruota e la distribuzione di origine, esegui i comandi seguenti nella directory del progetto:

    pip install --upgrade build
    python -m build
    
  3. Se il progetto Python ha un file setup.py , è anche possibile compilare il pacchetto usando:

    python setup.py sdist bdist_wheel
    

Creare un feed

  1. Accedere all'organizzazione di Azure DevOps e passare al progetto.

  2. Selezionare Artifactse quindi selezionare Create Feed.

  3. Fornire un Nome per il feed, scegliere l'opzione Visibilità che definisce chi può visualizzare i pacchetti, selezionare Includi pacchetti da origini pubbliche comuni se si desidera includere pacchetti da origini come nuget.org o npmjs.com, e per Ambito, decidere se il feed deve essere definito come ambito per il progetto o l'intera organizzazione.

  4. Al termine, selezionare Crea.

    Screenshot che mostra le selezioni per la creazione di un nuovo feed in Azure DevOps Services.

  1. Accedere al server Azure DevOps e quindi passare al progetto.

  2. Selezionare Artifactse quindi selezionare Create Feed.

  3. Fornire un Nome per il feed, scegliere l'opzione Visibilità che definisce chi può visualizzare i pacchetti, selezionare Includi pacchetti da origini pubbliche comuni se si desidera includere pacchetti da origini come nuget.org o npmjs.com, e per Ambito, decidere se il feed deve essere definito come ambito per il progetto o l'intera organizzazione.

  1. Al termine, selezionare Crea.

    Screenshot che mostra le selezioni per la creazione di un nuovo feed in Azure DevOps 2022.

Nota

Per impostazione predefinita , al servizio di compilazione per il progetto (ad esempio: projectName Build Service (orgName)) viene assegnato il ruolo Feed e Lettore upstream (Collaboratore) quando viene creato un nuovo feed.

Connetti al tuo feed

  1. Accedere all'organizzazione di Azure DevOps e quindi passare al progetto.

  2. Seleziona Artefatti, seleziona il tuo feed dal menu a tendina e quindi seleziona Connettersi al feed.

  3. Nella sezione Pythonselezionare twine.

  4. Se è la prima volta che usi Azure Artifacts con twine, seleziona Ottieni gli strumenti e segui le istruzioni per scaricare Python e installare Twine e il componente keyring degli artefatti.

  5. Creare un file pypirc nella home directory e incollare il frammento fornito nella sezione Installazione progetto . Il file dovrebbe essere simile al seguente:

    [distutils]
    Index-servers =
        FEED_NAME
    
    [FEED_NAME]
    Repository = https://pkgs.dev.azure.com/ORGANIZATION_NAME/PROJECT_NAME/_packaging/FEED_NAME/pypi/upload/
    

Nota

Se il file con estensione pypirc include già le credenziali per l'indice PyPI pubblico, è consigliabile rimuovere la [pypi] sezione per evitare la pubblicazione accidentale di pacchetti privati in PyPI.

Pubblicare pacchetti nel feed

  1. Nella directory del progetto eseguire il comando seguente per creare distribuzioni di origine e rotellina:

    python setup.py sdist bdist_wheel
    
    
  2. Per pubblicare il pacchetto, usare il comando seguente. Assicurarsi di usare il flag -r FEED_NAME per evitare la pubblicazione accidentale in PyPI:

    twine upload -r <FEED_NAME> dist/*
    

Installare pacchetti dal feed

  1. Per installare i pacchetti dal feed, eseguire il comando seguente nella directory del progetto:

    pip install
    
  2. Per installare un pacchetto specifico, sostituire il segnaposto con il nome del pacchetto dal feed:

    pip install <PACKAGE_NAME>