Pubblicare e usare pacchetti Python usando la riga di comando

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

Azure Artifacts consente di creare, ospitare e condividere pacchetti Python con il team o l'organizzazione. È possibile pubblicare e usare pacchetti Python usando un feed di Azure Artifacts dalla riga di comando nell'ambiente di sviluppo locale.

In questo articolo viene spiegato come:

  • Creare un feed di Azure Artifacts.
  • Configurare l'autenticazione con il pacchetto di keyring degli artefatti Python o un token di accesso personale ( PAT).
  • Pubblicare pacchetti Python nel feed.
  • Usare i pacchetti Python dal feed.

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.9 o versione successiva installato nel computer locale. Scaricare Python qui.
  • pip 24.0 e twine 5.0.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.9 o versione successiva installato nell'ambiente di sviluppo locale.
  • pip 24.0 e twine 5.0.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 feed di Azure Artifacts

Se non si ha un feed, seguire questa procedura per crearne uno.

  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.

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 nel computer locale usando l'URL copiato dal repository con fork.

    git clone <REPOSIORY_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

Connetti a feed

Esistono due modi principali per connettersi a un feed per pubblicare o usare i pacchetti Python:

  1. Usare il pacchetto di keyring degli artefatti, che configura automaticamente l'autenticazione.
  2. Configurare manualmente le credenziali con un token di accesso personale.

Nota

artifacts-keyring non è supportato nelle versioni più recenti di Ubuntu.

Nota

Se l'organizzazione usa un firewall o un server proxy, assicurarsi di consentire gli URL di dominio e gli indirizzi IP di Azure Artifacts.

Configurare artefatti-keyring per l'autenticazione

Il pacchetto di keyring degli artefatti funziona con il pacchetto di keyring Python per consentire di configurare l'autenticazione per pubblicare e utilizzare i pacchetti Python da e verso il feed. Sia pip che twine usano il pacchetto di keyring Python per trovare le credenziali.

Importante

Per usare il keyring degli artefatti, è necessario avere pip 19.2 e twine 1.13.0 o versione successiva. Per altre informazioni, vedere Requisiti di utilizzo.

Se si sceglie di usare artifacts-keyring, è necessario installare il pacchetto prima di poterlo usare.

In una finestra del prompt dei comandi con privilegi elevati eseguire il comando seguente per installare il pacchetto artifacts-keyring:

pip install artifacts-keyring

Pubblicare pacchetti Python

È possibile pubblicare pacchetti Python nel feed usando il pacchetto di keyring degli artefatti o l'autenticazione PAT.

Pubblicare pacchetti con artifacts-keyring

  1. Selezionare Connessione da feed dal feed.

    A screenshot highlighting the connect to feed.

  2. Selezionare twine e copiare l'URL del repository dalla sezione Installazione di Project .

    A screenshot of instructions to connect to feed with twine.

  3. Per pubblicare un pacchetto nel feed, eseguire il comando seguente sostituendo <F edizione Enterprise D_URL> con l'URL del repository copiato dalla finestra di dialogo Connessione per il feed:

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

Pubblicare pacchetti con l'autenticazione PAT

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` file 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'opzione --config-file .

    twine upload --repository <FEED_NAME> dist/*
    

Utilizzare pacchetti Python

È possibile usare pacchetti Python dal feed usando il pacchetto di keyring degli artefatti o l'autenticazione PAT.

Usare i pacchetti con il keyring degli artefatti

  1. Nel progetto selezionare Artefatti e quindi selezionare il feed.

  2. Selezionare Connetti a feed.

    A screenshot highlighting the connect to feed button.

  3. Selezionare pip nella sezione Python .

    A screenshot of pip selection in Connect to feed.

  4. Preparare l'ambiente Python locale.

    1. Verificare che pip sia installato e aggiornato:

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

      python -m venv myenv
      myenv/Scripts/activate
      
  5. Copiare dalla index-urlsezione Installazione progetto della finestra di dialogo Connessione per il feed.

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

  6. Per installare un pacchetto dal feed, eseguire il comando seguente sostituendo <PACKAGE_NAME> con il nome del pacchetto dal feed e <INDEX_URL> con l'URL dell'indice copiato dalla finestra di dialogo Connessione al feed:

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

Quando ci si connette ad Azure DevOps per la prima volta, vengono richieste le credenziali. Immettere il nome utente (qualsiasi stringa) e il token di accesso personale nei campi appropriati. Le credenziali verranno memorizzate nella cache in locale e usate per accedere automaticamente al successivo utilizzo del servizio.

Utilizzare pacchetti con l'autenticazione PAT

  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>