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.
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 con il comando seguente usando l'URL copiato dal repository con fork:
git clone <REPOSITORY_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
Creare un feed
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.
Pubblicare il pacchetto nel feed
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'argomento--config-file
.twine upload --repository <FEED_NAME> dist/*
Installare un pacchetto dal feed
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] extra-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>
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:
- Selezionare Project Settings (Impostazioni progetto).
- Nella pagina Dettagli progetto selezionare Elimina nella parte inferiore della pagina.
- Immettere il nome del progetto da confermare e quindi selezionare Elimina.
Se si vuole eliminare solo il feed:
- Selezionare Artefatti e selezionare il feed dal menu a discesa.
- Selezionare il pulsante impostazioni.
- Nella scheda Impostazioni feed selezionare Elimina feed.
- Seleziona Elimina per confermare.
Per pulire l'ambiente di sviluppo locale:
Per disattivare l'ambiente virtuale, eseguire il comando seguente:
deactivate
Per eliminare l'ambiente virtuale, eliminare la directory in cui è stata creata.
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.