View a markdown version of this page

Erstellen Sie ein Conda-Paket für eine Anwendung oder ein Plugin - Deadline Cloud

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erstellen Sie ein Conda-Paket für eine Anwendung oder ein Plugin

Ein Conda-Paket ist ein komprimiertes Archiv von Software, die in einer beliebigen Sprache geschrieben wurde. Conda unterstützt eine Vielzahl von Betriebssystem- und Architekturkombinationen, sodass Sie vollständige Anwendungen wie Blender und Nuke zusammen mit Bibliotheken für Python und andere Sprachen paketieren können. Maya Weitere Informationen zu Conda-Paketen finden Sie unter Pakete in der Conda-Dokumentation.

Um ein Conda-Paket zu verwenden, installieren Sie es in einer virtuellen Umgebung. Eine virtuelle Conda-Umgebung hat ein Präfixverzeichnis, in dem Pakete installiert werden. Bei der Installation eines Pakets werden Dateien fest oder neu verknüpft, sofern dies unterstützt wird. Das Erstellen mehrerer Umgebungen mit denselben Paketen verbraucht also keinen nennenswerten zusätzlichen Speicherplatz. Um eine virtuelle Umgebung zu verwenden, aktivieren Sie sie, um Umgebungsvariablen festzulegen. Bei der Aktivierung werden die von Paketen bereitgestellten Skripts ausgeführt, sodass jedes Paket die Möglichkeit hat, PATH oder andere Umgebungsvariablen zu ändern. Conda-Pakete enthalten in der Regel Anwendungen oder Bibliotheken, aber dank der flexiblen Aktivierung können sie auch auf Anwendungen verweisen, die auf einem gemeinsam genutzten Dateisystem installiert sind.

Die Erstellung eines benutzerdefinierten Pakets umfasst drei Phasen: Ein Rezept enthält die Bauanweisungen, ein Paket ist das gebaute Artefakt (.condaoder die .tar.bz2 Datei) und ein Channel hostet Pakete für die Installation. Der rattler-build publish Befehl behandelt alle drei Schritte — er kann ein Rezept in ein Paket einbauen und in einem Channel veröffentlichen, oder er kann direkt ein Paket-Artefakt verwenden, um es zu veröffentlichen.

Die https://conda-forge.org/ Conda-Forge-Community verwaltet Paketrezepte für eine Vielzahl von Open-Source-Software und hostet Paketartefakte im Channel. conda-forge Du kannst deine Warteschlange so konfigurieren, dass sie conda-forge sie als Paketquelle enthält, und dann benutzerdefinierte Pakete erstellen, deren Ausführung von Conda-Forge-Paketen abhängt. Denn Linux conda-forge hostet eine vollständige Compiler-Toolchain einschließlich CUDA-Unterstützung, wobei konsistente Kompilierungs- und Linkoptionen ausgewählt sind. Sie können Conda-Forge-Pakete als Abhängigkeiten in Ihren eigenen Rezepten verwenden oder sie zusammen mit Ihren benutzerdefinierten Paketen in derselben Umgebung installieren.

Sie können eine gesamte Anwendung, einschließlich Abhängigkeiten, zu einem Conda-Paket kombinieren. Die Pakete, die Deadline Cloud im Deadline-Cloud-Channel für dienstverwaltete Flotten bereitstellt, verwenden diesen binären Repacking-Ansatz. Dadurch werden dieselben Dateien wie bei einer Installation so organisiert, dass sie in die virtuelle Conda-Umgebung passen.

Anmerkung

Große Anwendungen können mehrere zehn GB freien Festplattenspeicher für das Quellarchiv, die entpackten Dateien und die Build-Ausgabe benötigen. Stellen Sie sicher, dass Sie eine Festplatte mit ausreichend verfügbarem Speicherplatz für die Paket-Build-Ausgabe verwenden.

Verpacken Sie eine Anwendung

Beim Umpacken einer Anwendung für Conda gibt es zwei Ziele:

  • Die meisten Dateien für die Anwendung sollten von der primären virtuellen Conda-Umgebungsstruktur getrennt sein. Umgebungen können die Anwendung dann mit Paketen aus anderen Quellen wie https://conda-forge.org/ Conda-Forge mischen.

  • Wenn eine virtuelle Conda-Umgebung aktiviert ist, sollte die Anwendung über die PATH-Umgebungsvariable verfügbar sein.

Um eine Anwendung für Conda neu zu verpacken
  1. Schreiben Sie Conda-Build-Rezepte, die die Anwendung installieren, in ein Unterverzeichnis wie. $CONDA_PREFIX/opt/<application-name> Dies unterscheidet es von den Standardpräfixverzeichnissen wie bin und. lib

  2. Fügen Sie symbolische Links oder Startskripte hinzu, $CONDA_PREFIX/bin um die Anwendungsbinärdateien auszuführen.

    Erstellen Sie alternativ aktivierte.d-Skripte, die der conda activate Befehl ausführt, um die Binärverzeichnisse der Anwendung zum PATH hinzuzufügen. OnWindows, wo Symlinks nicht überall unterstützt werden, wo Umgebungen erstellt werden können, verwenden Sie stattdessen die Skripte für den Anwendungsstart oder activate.d.

  3. Einige Anwendungen hängen von Bibliotheken ab, die in den vom Deadline Cloud-Dienst verwalteten Flotten standardmäßig nicht installiert sind. Beispielsweise ist das X11-Fenstersystem normalerweise für nicht interaktive Jobs nicht erforderlich, aber für einige Anwendungen ist es dennoch erforderlich, dass es ohne grafische Oberfläche ausgeführt werden kann. Sie müssen diese Abhängigkeiten in dem Paket angeben, das Sie erstellen.

  4. Wenn die Anwendung Plugins unterstützt, geben Sie eine klare Konvention an, der zufolge Plugin-Pakete bei der Integration in die Anwendung in einer virtuellen Umgebung folgen sollten. Zum Beispiel dokumentiert das Maya 2026-Beispielrezept diese Konvention für Maya Plugins.

  5. Stellen Sie sicher, dass Sie die Urheber- und Lizenzvereinbarungen für die von Ihnen verpackten Anwendungen einhalten. Wir empfehlen, einen privaten Amazon S3-Bucket für Ihren Conda-Channel zu verwenden, um die Verteilung zu kontrollieren und den Paketzugriff auf Ihre Farm einzuschränken.

Beispielrezepte für die Pakete im deadline-cloud Channel sind im Deadline Cloud-Beispiel-Repository unter GitHub verfügbar.

Verpacken Sie ein Plugin

Anwendungs-Plugins können als eigene Conda-Pakete gepackt werden. Beachten Sie beim Erstellen eines Plugin-Pakets diese Richtlinien:

  • Nehmen Sie das Host-Anwendungspaket sowohl als Build- als auch als Run-Abhängigkeit in das Build-Rezept aufrecipe.yaml. Verwenden Sie eine Versionsbeschränkung, damit das Build-Rezept nur mit kompatiblen Paketen installiert wird.

  • Folgen Sie den Konventionen des Host-Anwendungspakets für die Registrierung des Plugins.

Adapter-Pakete

Einige Anwendungsintegrationen von Deadline Cloud verwenden einen Adapter, der die Anwendungsschnittstelle erweitert, um das Schreiben von Jobvorlagen zu vereinfachen. Ein Adapter ist eine Befehlszeilenschnittstelle, die das Ausführen eines Hintergrund-Daemons, das Melden des Status und das Anwenden von Pfadzuordnungen unterstützt. Weitere Informationen finden Sie in der Open Job Description Adaptor Runtime unter. GitHub Zum Beispiel GitHub beinhaltet deadline-cloud-for-maya on eine integrierte Benutzeroberfläche für die Auftragsübergabe und einen Maya Adapter, der als Paket für dienstverwaltete Flotten verfügbar ist. maya-openjd

Jobübermittlungen von Deadline Cloud-Einreicher-GUIs enthalten einen CondaPackages Parameterwert, der die Conda-Pakete angibt, die in eine virtuelle Umgebung zur Ausführung des Jobs aufgenommen werden sollen. Der CondaPackages Parameterwert für sieht Maya in der Regel wie alternative Einträge für Plugin-Pakete aus maya=2026.* maya-openjd=0.15.* maya-mtoa und kann diese enthalten. Wenn die Warteschlangenumgebung eine virtuelle Conda-Umgebung für die Ausführung des Jobs einrichtet, werden diese Paketnamen und Versionsbeschränkungen so aufgelöst, dass sie kompatibel sind, und fügt alle Abhängigkeitspakete hinzu, die sie zur Ausführung benötigen. Jedes Adapter- und Plugin-Paket gibt an, womit es kompatibel ist, einschließlich welcher Versionen vonMaya, welcher Versionen von Python und anderer Abhängigkeiten.

Um Ihre eigenen Adapterpakete mit unseren Beispielen wie dem Maya-Openjd-Rezept zu erstellen, können Sie auf den Paketen für Python und andere Abhängigkeiten aufbauenGitHub, die von conda-forge bereitgestellt werden. https://conda-forge.org/ Möglicherweise müssen Sie zuerst die Deadline - und https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/conda_recipes/openjd-adaptor-runtime Openjd-Adaptor-Runtime-Rezepte erstellen, um die Abhängigkeiten zu erfüllen.