Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Azure DevOps Services
Richten Sie Anaconda mit Python in Ihrer Pipeline ein und verwenden Sie sie. Anaconda ist eine Python-Verteilung für Data Science und maschinelles Lernen.
Voraussetzungen
Python ist auf von Microsoft gehosteten Agents für Linux, macOS und Windows vorinstalliert. Sie müssen nichts mehr einrichten, um Python-Projekte zu erstellen. Informationen dazu, welche Python-Versionen vorinstalliert sind, finden Sie unter Software.
| Produkt | Anforderungen |
|---|---|
| Azure DevOps | – Ein Azure DevOps-Projekt. – Eine Möglichkeit zum Ausführen von Pipelines auf von Microsoft gehosteten Agenten. Sie können entweder einen parallelen Auftrag erwerben oder ein kostenloses Kontingent anfordern. - Grundkenntnisse in YAML und Azure Pipelines. Weitere Informationen finden Sie unter Erstellen Ihrer ersten Pipeline. - Berechtigungen: – Um eine Pipeline zu erstellen: Sie müssen sich in der Gruppe "Mitwirkende" befinden, und die Gruppe muss die Berechtigung "Erstellen einer Build-Pipeline" auf "Zulassen" gesetzt haben. Mitglieder der Gruppe "Projektadministratoren " können Pipelines verwalten. – Um Dienstverbindungen zu erstellen: Sie müssen über die Rolle "Administrator " oder " Ersteller " für Dienstverbindungen verfügen. |
| GitHub | - Ein GitHub-Konto . – Eine GitHub-Dienstverbindung zum Autorisieren von Azure Pipelines. |
Erste Schritte
Befolgen Sie diese Anweisungen, um eine Pipeline für eine Python-Beispiel-App mit Anaconda-Umgebung einzurichten.
Melden Sie sich bei Ihrer Azure DevOps-Organisation an, und navigieren Sie zu Ihrem Projekt.
Navigieren Sie in Ihrem Projekt zur Seite Pipelines. Wählen Sie dann die Aktion zum Erstellen einer neuen Pipeline aus.
Führen Sie die Schritte des Assistenten aus. Wählen Sie zuerst GitHub als Speicherort Ihres Quellcodes aus.
Möglicherweise werden Sie zu GitHub weitergeleitet, um sich anzumelden. Geben Sie in diesem Fall Ihre Anmeldeinformationen für GitHub ein.
Wenn die Liste der Repositories erscheint, wählen Sie Ihr Anaconda-Beispiel-Repository.
Azure Pipelines analysiert den Code in Ihrem Repository und erkennt eine vorhandene
azure-pipelines.ymlDatei.Klicken Sie auf Run (Ausführen).
Eine neue Ausführung wird gestartet. Warten Sie, bis die Ausführung beendet ist.
Tipp
Wenn Sie Änderungen an der YAML-Datei vornehmen möchten, wie in diesem Artikel beschrieben, wählen Sie die Pipeline auf der Seite "Pipelines " aus, und bearbeiten Sie dann die azure-pipelines.yml Datei.
Hinzufügen von conda zum Systempfad
Auf gehostete Agents ist Conda nicht standardmäßig enthalten PATH, um zu verhindern, dass die Python-Version mit anderen installierten Versionen in Konflikt steht. Verwenden Sie den task.prependpath Agent-Befehl, um conda allen späteren Schritten zur Verfügung zu stellen.
- bash: echo "##vso[task.prependpath]$CONDA/bin"
displayName: Add conda to PATH
Erstellen einer Umgebung
Aus Befehlszeilenargumenten
Der conda create Befehl erstellt eine Umgebung mit den übergebenen Argumenten.
- bash: conda create --yes --quiet --name myEnvironment
displayName: Create Anaconda environment
Über YAML
Sie können eine environment.yml Datei in Ihr Repository einchecken, die die Konfiguration für eine Anaconda-Umgebung definiert.
- script: conda env create --quiet --file environment.yml
displayName: Create Anaconda environment
Hinweis
Wenn Sie einen selbst gehosteten Agent verwenden und die Umgebung nicht am Ende entfernen, wird beim nächsten Build ein Fehler angezeigt, da die Umgebung bereits vorhanden ist. Um dies zu beheben, entfernen Sie die Umgebung, bevor Sie eine neue mit conda env remove --name your-env-name erstellen.
Hinweis
Wenn Sie selbst gehostete Agents verwenden, die Speicher freigeben und Aufträge parallel mit den gleichen Anaconda-Umgebungen ausführen, können Konflikte zwischen diesen Umgebungen auftreten. Verwenden Sie zum Beheben dieses Problems das --name Argument und einen eindeutigen Bezeichner als Argumentwert, z. B. eine Verkettung mit der $(Build.BuildNumber) Buildvariable.
Installieren von Paketen aus Anaconda
Mit dem folgenden YAML wird das scipy Paket in der Conda-Umgebung namens myEnvironmentinstalliert.
- bash: |
conda activate myEnvironment
conda install --yes --quiet --name myEnvironment scipy
displayName: Install Anaconda packages
Ausführen von Pipelineschritten in einer Anaconda-Umgebung
Hinweis
Jeder Build-Schritt läuft in einem eigenen Prozess ab.
Wenn Sie eine Anaconda-Umgebung aktivieren, wird PATH bearbeitet und es werden andere Änderungen am aktuellen Prozess vorgenommen.
Aktivieren Sie also für jeden Schritt eine Anaconda-Umgebung separat.
- bash: |
conda activate myEnvironment
python -m pytest --junitxml=junit/unit-test.xml
displayName: pytest
- task: PublishTestResults@2
inputs:
testResultsFiles: 'junit/*.xml'
condition: succeededOrFailed()
Häufig gestellte Fragen
Warum erhalte ich den Fehler "Berechtigung verweigert"?
Bei gehosteten macOS besitzt der Agentbenutzer nicht das Verzeichnis, in dem Miniconda installiert ist. Um dieses Problem zu beheben, wechseln Sie zur Registerkarte "Gehostetes macOS" unter "Conda hinzufügen" zu Ihrem Systempfad.
Warum reagiert mein Build nicht mehr auf einen conda create oder conda install Schritt?
Wenn Sie --yes nicht übergeben, stoppt Conda und wartet auf die Benutzereingabe.
Warum wird mein Skript unter Windows beendet, nachdem es die Umgebung aktiviert hat?
Unter Windows activate ist ein Batch-Skript. Sie müssen den call Befehl verwenden, um die Ausführung Ihres Skripts nach der Aktivierung fortzusetzen.
Beispiele für die Verwendung callin einer Pipeline.
Wie kann ich meine Tests mit mehreren Versionen von Python ausführen?
Wechseln Sie zum Erstellen von Python-Apps in Azure Pipelines.