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.
Accedere all'organizzazione di Azure DevOps e quindi passare al progetto.
Selezionare Artefatti e quindi Crea feed.
Immettere le informazioni seguenti per il feed:
- Immettere un nome descrittivo per il feed.
- Definire la relativa visibilità (che indica chi può visualizzare i pacchetti all'interno del feed).
- Selezionare se usare pacchetti da origini pubbliche, ad esempio pypi.org.
- Specificare l'ambito del feed.
Seleziona Crea.
Passare alla raccolta di Azure DevOps e selezionare il progetto.
Selezionare Artefatti e quindi Crea feed.
Immettere le informazioni seguenti per il feed:
- Immettere un nome descrittivo per il feed.
- Definire la relativa visibilità (che indica chi può visualizzare i pacchetti all'interno del feed).
- Selezionare se usare pacchetti da origini pubbliche, ad esempio pypi.org.
- Specificare l'ambito del feed.
Seleziona Crea.
Passare alla raccolta di Azure DevOps e selezionare il progetto.
Selezionare Artefatti e quindi crea feed per creare un nuovo feed.
Immettere le informazioni seguenti per il feed:
- Immettere un nome descrittivo per il feed.
- Definire la relativa visibilità (che indica chi può visualizzare i pacchetti all'interno del feed).
- Selezionare se usare pacchetti da origini pubbliche, ad esempio pypi.org.
- Specificare l'ambito del feed.
Seleziona Crea.
Passare alla raccolta di Azure DevOps e selezionare il progetto.
Selezionare Artefatti e quindi crea feed per creare un nuovo feed.
Immettere le informazioni seguenti per il feed:
- Immettere un nome descrittivo per il feed.
- Definire la relativa visibilità (che indica chi può visualizzare i pacchetti all'interno del feed).
- Scegliere se usare pacchetti da origini pubbliche, ad esempio pypi.org.
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.
Passare al repository GitHub seguente:
https://github.com/microsoft/python-package-template
Creare una fork del repository nell'account GitHub.
Passare al repository con fork e selezionare Codice.
Copiare l'URL del repository con fork.
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>
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:
- Usare il pacchetto di keyring degli artefatti, che configura automaticamente l'autenticazione.
- 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
Selezionare Connessione da feed dal feed.
Selezionare twine e copiare l'URL del repository dalla sezione Installazione di Project .
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.
Passare al progetto Azure DevOps e selezionare Artefatti.
Selezionare il feed e selezionare Connessione da inserire.
Selezionare twine nella sezione Python .
Nel computer di sviluppo verificare che twine sia installato.
pip install --upgrade twine
Seguire le istruzioni nella sezione Configurazione progetto per configurare il
.pypirc
file.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>
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
Nel progetto selezionare Artefatti e quindi selezionare il feed.
Selezionare Connetti a feed.
Selezionare pip nella sezione Python .
Preparare l'ambiente Python locale.
Verificare che pip sia installato e aggiornato:
python -m pip install --upgrade pip
Per creare e attivare un ambiente virtuale Python:
python -m venv myenv myenv/Scripts/activate
Copiare dalla
index-url
sezione Installazione progetto della finestra di dialogo Connessione per il feed.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
Passare al progetto Azure DevOps e selezionare Artefatti.
Selezionare il feed e selezionare Connessione da inserire.
Selezionare pip nella sezione Python .
Preparare l'ambiente Python locale.
Verificare che pip sia installato e aggiornato:
python -m pip install --upgrade pip
Creare e attivare un ambiente virtuale Python:
python -m venv myenv myenv/Scripts/activate
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.
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] index-url=https://<FEED_NAME>:<YOUR_PERSONAL_ACCESS_TOKEN>@<FEED_URL>
Per installare il pacchetto, eseguire il comando seguente sostituendo <PACKAGE_NAME> con il nome del pacchetto dal feed.
pip install <PACKAGE_NAME>