Guida introduttiva: Pubblicare e usare pacchetti Python con Azure Artifacts usando la riga di comando

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

In questa guida introduttiva si apprenderà come creare un feed di Azure Artifacts e usare il feed per pubblicare e usare pacchetti Python dalla riga di comando nell'ambiente di sviluppo locale. Al termine, è disponibile un pacchetto Python pubblicato nel feed e installato dal feed all'ambiente di sviluppo locale.

Per pubblicare e usare pacchetti in Azure Pipelines, vedere Pubblicare pacchetti Python con Azure Pipelines.

Prerequisiti

Per eseguire i passaggi seguenti, è necessario disporre di:

  • Un'organizzazione di Azure DevOps. Crearne una gratuitamente.
  • Token di accesso personale (PAT) con ambito di lettura per la creazione di pacchetti>. Per crearne uno, vedere Creare un pat.
  • Un progetto Azure DevOps. Se non è disponibile, creare un progetto.
  • Python 3.8 o versione successiva installata nel computer locale. Scaricare Python qui.
  • pip 19.2 e twine 1.13.0 o versione successiva.
  • Un pacchetto Python da pubblicare dal computer locale al feed.
  • Se si usa il pacchetto Python di esempio:
    • Un account GitHub. Creare un account GitHub gratuito, se non ne è già disponibile uno.
    • Git installato nel computer locale.
  • Un account GitHub. Creare un account GitHub gratuito, se non ne è già disponibile uno.
  • Accesso a una raccolta di Azure DevOps Server.
  • Token di accesso personale (PAT) con ambito di lettura per la creazione di pacchetti>. Per crearne uno, vedere Creare un pat.
  • Un progetto Azure DevOps. Se non è disponibile, creare un progetto.
  • Python 3.8 o versione successiva installato nell'ambiente di sviluppo locale.
  • pip 19.2 e twine 1.13.0 o versione successiva.
  • Se si usa il pacchetto Python di esempio:
    • Un account GitHub. Creare un account GitHub gratuito, se non ne è già disponibile uno.
    • Git installato nel computer locale.

Creare un pacchetto Python locale

È necessario un pacchetto Python per pubblicare nel feed. Se non si ha un pacchetto da pubblicare, è possibile clonare un pacchetto Python di esempio da GitHub.

Clonare il pacchetto Python di esempio

Usare la procedura seguente per usare il pacchetto Python di esempio da GitHub.

  1. Passare al repository GitHub seguente:

    https://github.com/microsoft/python-package-template
    
  2. Creare una fork del repository nell'account GitHub.

  3. Passare al repository con fork e selezionare Codice.

  4. Copiare l'URL del repository con fork.

  5. Da un'interfaccia della riga di comando nel computer locale clonare il repository con il comando seguente usando l'URL copiato dal repository con fork:

    git clone <REPOSITORY_URL>
    
  6. Passare alla directory nel repository clonato.

    cd python-package-template
    

Compilare il pacchetto

Per compilare la rotellina e la distribuzione di origine, eseguire i comandi seguenti nella directory del progetto:

pip install --upgrade build
python -m build

Se il progetto Python ha un setup.py file, è possibile usare il comando seguente per compilare il pacchetto:

python setup.py sdist bdist_wheel

Creare un feed

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

  2. Selezionare Artefatti e quindi Crea feed.

    A screenshot showing how to create a feed.

  3. Immettere le informazioni seguenti per il feed:

    1. Immettere un nome descrittivo per il feed.
    2. Definire la relativa visibilità (che indica chi può visualizzare i pacchetti all'interno del feed).
    3. Selezionare se usare pacchetti da origini pubbliche, ad esempio pypi.org.
    4. Specificare l'ambito del feed.
  4. Seleziona Crea.

  1. Passare alla raccolta di Azure DevOps e selezionare il progetto.

  2. Selezionare Artefatti e quindi Crea feed.

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

  3. Immettere le informazioni seguenti per il feed:

    1. Immettere un nome descrittivo per il feed.
    2. Definire la relativa visibilità (che indica chi può visualizzare i pacchetti all'interno del feed).
    3. Selezionare se usare pacchetti da origini pubbliche, ad esempio pypi.org.
    4. Specificare l'ambito del feed.
  4. Seleziona Crea.

  1. Passare alla raccolta di Azure DevOps e selezionare il progetto.

  2. Selezionare Artefatti e quindi crea feed per creare un nuovo feed.

  3. Immettere le informazioni seguenti per il feed:

    1. Immettere un nome descrittivo per il feed.
    2. Definire la relativa visibilità (che indica chi può visualizzare i pacchetti all'interno del feed).
    3. Selezionare se usare pacchetti da origini pubbliche, ad esempio pypi.org.
    4. Specificare l'ambito del feed.
  4. Seleziona Crea.

  1. Passare alla raccolta di Azure DevOps e selezionare il progetto.

  2. Selezionare Artefatti e quindi crea feed per creare un nuovo feed.

  3. Immettere le informazioni seguenti per il feed:

    1. Immettere un nome descrittivo per il feed.
    2. Definire la relativa visibilità (che indica chi può visualizzare i pacchetti all'interno del feed).
    3. Scegliere se usare pacchetti da origini pubbliche, ad esempio pypi.org.
  4. Seleziona Crea.

Pubblicare il pacchetto nel feed

Usare twine per caricare il pacchetto nel feed di Azure Artifacts.

  1. Passare al progetto Azure DevOps e selezionare Artefatti.

  2. Selezionare il feed e selezionare Connessione da inserire.

    A screenshot highlighting the connect to feed.

  3. Selezionare twine nella sezione Python .

    A screenshot highlighting the twine package type.

  4. Nel computer di sviluppo verificare che twine sia installato.

    pip install --upgrade twine
    
  5. Seguire le istruzioni nella sezione Configurazione progetto per configurare il .pypirc file.

    A screenshot highlighting the `.pyirc` content.

  6. Per evitare di dover immettere il token di accesso personale ogni volta che si pubblica un pacchetto, è possibile aggiungere le credenziali al .pypirc file. Assicurarsi di non controllare il token di accesso personale in un repository pubblico.

    Esempio di file .pypirc con credenziali:

    [distutils]
    Index-servers =
        <FEED_NAME>
    
    [<FEED_NAME>]
    Repository = <FEED_URL>
    username = <FEED_NAME>
    password = <YOUR_PERSONAL_ACCESS_TOKEN>
    
  7. Per caricare il pacchetto, eseguire il comando seguente nella directory del progetto sostituendo <F edizione Enterprise D_NAME> con il nome del feed. In Windows potrebbe essere necessario specificare il percorso del .pypirc file con l'argomento --config-file .

    twine upload --repository <FEED_NAME> dist/*
    

Installare un pacchetto dal feed

  1. Passare al progetto Azure DevOps e selezionare Artefatti.

  2. Selezionare il feed e selezionare Connessione da inserire.

    A screenshot highlighting the connect to feed button.

  3. Selezionare pip nella sezione Python .

    A screenshot highlighting the pip package type.

  4. Preparare l'ambiente Python locale.

    1. Verificare che pip sia installato e aggiornato:

      python -m pip install --upgrade pip
      
    2. Creare e attivare un ambiente virtuale Python:

      python -m venv myenv
      myenv/Scripts/activate
      
  5. Aggiungere un pip.ini (Windows) o un file pip.conf (Mac/Linux) alla directory radice dell'ambiente virtuale. Copiare il contenuto dalla sezione Installazione progetto della finestra di dialogo Connessione per feed e aggiungerlo al file pip.ini o pip.conf.

    A screenshot highlighting the pip.ini file content.

  6. Per evitare di dover immettere il token di accesso personale ogni volta che si installa un pacchetto dal feed, è possibile aggiungere le credenziali al file pip.ini o pip.conf . Assicurarsi di non controllare il token di accesso personale in un repository pubblico.

    Esempio di file pip.ini o pip.conf con credenziali:

    [global]
    extra-index-url=https://<FEED_NAME>:<YOUR_PERSONAL_ACCESS_TOKEN>@<FEED_URL>
    
  7. Per installare il pacchetto, eseguire il comando seguente sostituendo <PACKAGE_NAME> con il nome del pacchetto dal feed.

    pip install <PACKAGE_NAME>
    

Pulire le risorse

Al termine delle risorse create, è possibile eliminarle per evitare addebiti. Quando si elimina un progetto, vengono eliminati tutti i relativi feed di artefatti a livello di progetto.

Per eliminare un progetto:

  1. Selezionare Project Settings (Impostazioni progetto).
  2. Nella pagina Dettagli progetto selezionare Elimina nella parte inferiore della pagina.
  3. Immettere il nome del progetto da confermare e quindi selezionare Elimina.

Se si vuole eliminare solo il feed:

  1. Selezionare Artefatti e selezionare il feed dal menu a discesa.
  2. Selezionare il pulsante impostazioni.
  3. Nella scheda Impostazioni feed selezionare Elimina feed.
  4. Seleziona Elimina per confermare.

Per pulire l'ambiente di sviluppo locale:

  1. Per disattivare l'ambiente virtuale, eseguire il comando seguente:

    deactivate
    
  2. Per eliminare l'ambiente virtuale, eliminare la directory in cui è stata creata.

  3. Rimuovere il .pypirc file dalla home directory.

Se è stato clonato il pacchetto Python di esempio, è possibile eliminare il repository dal computer locale e dall'account GitHub.

Passaggi successivi