Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Servizi di Azure DevOps
Informazioni su come configurare e usare Anaconda con Python nella pipeline. Anaconda è una distribuzione Python per data science e Machine Learning.
Inizia
Seguire queste istruzioni per configurare una pipeline per un'app Python di esempio con ambiente Anaconda.
Accedere all'organizzazione di Azure DevOps e passare al progetto.
Nel progetto passare alla pagina Pipeline. Poi scegliere l'azione per creare una nuova pipeline.
Eseguire i passaggi della procedura guidata selezionando prima di tutto GitHub come posizione del codice sorgente.
Si potrebbe essere reindirizzati a GitHub per l'accesso. In questo caso, immettere le credenziali di GitHub.
Quando viene visualizzato l'elenco dei repository, selezionare il repository di esempio Anaconda.
Azure Pipelines analizzerà il codice nel repository e rileverà un file esistente
azure-pipelines.yml
.Selezionare Esegui.
Viene avviata una nuova esecuzione. Attendere che l'esecuzione finisca.
Suggerimento
Per apportare modifiche al file YAML come descritto in questo argomento, selezionare la pipeline nella pagina Pipeline e quindi Modificare il azure-pipelines.yml
file.
Aggiungere conda al percorso di sistema
Negli agenti ospitati, conda è escluso per impostazione predefinita per evitare conflitti tra la sua versione di Python e altre versioni installate. Il task.prependpath
comando agent lo renderà disponibile per tutti i passaggi successivi.
- bash: echo "##vso[task.prependpath]$CONDA/bin"
displayName: Add conda to PATH
Crea un ambiente
Dagli argomenti della riga di comando
Il comando conda create
crea un ambiente con gli argomenti che gli passi.
- bash: conda create --yes --quiet --name myEnvironment
displayName: Create Anaconda environment
Da YAML
È possibile archiviare un environment.yml
file nel repository che definisce la configurazione per un ambiente Anaconda.
- script: conda env create --quiet --file environment.yml
displayName: Create Anaconda environment
Nota
Se si usa un agente self-hosted e non si rimuove l'ambiente alla fine, verrà visualizzato un errore nella compilazione successiva perché l'ambiente esiste già. Per risolvere il problema, usare l'argomento --force
: conda env create --quiet --force --file environment.yml
.
Nota
Se si usano agenti self-hosted che condividono l'archiviazione e si eseguono processi in parallelo usando gli stessi ambienti Anaconda, potrebbero verificarsi conflitti tra tali ambienti.
Per risolvere, usare l'argomento --name
e un identificatore univoco come valore dell'argomento, ad esempio una concatenazione con la variabile di compilazione $(Build.BuildNumber)
.
Installare pacchetti da Anaconda
Il codice YAML seguente installa il scipy
pacchetto nell'ambiente conda denominato myEnvironment
.
- bash: |
source activate myEnvironment
conda install --yes --quiet --name myEnvironment scipy
displayName: Install Anaconda packages
Eseguire i passaggi della pipeline in un ambiente Anaconda
Nota
Ogni passaggio di compilazione viene eseguito nel proprio processo.
Quando si attiva un ambiente Anaconda, verrà modificato PATH
e apporterà altre modifiche al processo corrente.
Pertanto, un ambiente Anaconda deve essere attivato separatamente per ogni passaggio.
- bash: |
source activate myEnvironment
python -m pytest --junitxml=junit/unit-test.xml
displayName: pytest
- task: PublishTestResults@2
inputs:
testResultsFiles: 'junit/*.xml'
condition: succeededOrFailed()
Domande frequenti
Perché viene visualizzato un errore "Autorizzazione negata"?
In Hosted macOS l'utente dell'agente non ha la proprietà della directory in cui è installato Miniconda. Per una correzione, vedere la scheda "Hosted macOS" in Add conda to your system path (Aggiungi conda al percorso di sistema).
Perché la mia compilazione cessa di funzionare in un passaggio conda create
o un passaggio conda install
?
Se si dimentica di passare --yes
, conda si arresterà e attenderà l'interazione dell'utente.
Perché lo script su Windows si interrompe dopo l'attivazione dell'ambiente?
Su Windows, activate
è uno script batch. È necessario usare il comando per riprendere l'esecuzione call
dello script dopo l'attivazione.
Vedi esempi di utilizzo call
in una pipeline.
Come è possibile eseguire i test con più versioni di Python?
Consulta Crea app Python in Azure Pipelines.