Skip To Content

Bereitstellen von benutzerdefinierten Python-Paketen für ArcGIS Server

Ab ArcGIS Enterprise 10.5 ist eine Python 3-basierte Conda-Umgebung in ArcGIS Server enthalten.

Die Python-Installation von ArcGIS Server enthält Pakete wie beispielsweise numpy und matplotlib. Wenn Sie jedoch zusätzliche benutzerdefinierte Python-Pakete installieren möchten, führen Sie die folgenden Schritte aus.

Services, die aus ArcGIS Pro veröffentlicht werden

Wie in ArcGIS Pro werden in ArcGIS Server Python-Umgebungen mit Conda verwaltet. Ab ArcGIS Server 10.7.1 können Sie für alle Geoverarbeitungsservices eine Python-Umgebung festlegen. Ab ArcGIS Server 10.8.1 können Sie für einzelne Geoverarbeitungsservices eine Python-Umgebung festlegen.

Die folgenden Schritte gelten für Geoverarbeitungsservices, die über ArcGIS Pro oder mit ArcPy veröffentlicht wurden. Weitere Informationen zur Python-Umgebung in ArcGIS Pro finden Sie unter Python in ArcGIS Pro. Es wird empfohlen, die Python-Standardumgebung zu klonen, um Aktualisierungen durchzuführen. Es kann nur jeweils eine Python-Umgebung für ArcGIS Server aktiviert sein.

Weitere Informationen zum Verwenden von und Arbeiten mit Conda finden Sie in der Einführung zu Conda.

Festlegen einer Python-Umgebung für alle Geoverarbeitungsservices

Führen Sie für jeden Computer Ihrer Site die folgenden Schritte aus, um mit ArcGIS Server Python-Pakete von Drittanbietern bereitzustellen:

  1. Melden Sie sich bei Ihrem ArcGIS Server-Computer an, und öffnen Sie das Eingabeaufforderungsfenster als Administrator.
  2. Ändern Sie das Verzeichnis in <install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\Scripts.
  3. Klonen Sie die Python-Standardumgebung des Servers mit einem neuen Umgebungsnamen. Der vorgeschlagene Speicherort befindet sich im Python-Umgebungsverzeichnis der ArcGIS Server-Installation. Führen Sie den Befehl conda create --clone arcgispro-py3 --prefix "<install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\envs\newenvname" --pinned --no-shortcuts unter Verwendung eines newenvname-Beispiels aus. Ersetzen Sie das Präfix durch Ihr Installationsverzeichnis und den neuen Umgebungsnamen. Alternativ können Sie einen Speicherort außerhalb des Installationsverzeichnisses angeben.
  4. Um die geklonte Umgebung zu aktivieren, führen Sie conda proswap -n newenvname --all-users aus. Falls Sie sich als Benutzer eines ArcGIS-Server-Kontos bei Ihrem Computer angemeldet haben, ist die Angabe des Arguments --all-users optional; andernfalls ist das Argument erforderlich. Wenn sich Ihre geklonte Conda-Umgebung außerhalb des vorgeschlagenen Speicherorts befindet, geben Sie den vollständigen Pfad zu dem Speicherort unter Verwendung von conda proswap -p "<full-path-to-cloned-directory>" --all-users an.
  5. Installieren Sie die Python-Pakete von Drittanbietern, indem Sie conda install ausführen. Verwenden Sie pip install nur, wenn conda install nicht verfügbar ist.
  6. Starten Sie den ArcGIS Server-Service neu. Es dauert einige Minuten, bis alle Services wieder online sind.
  7. Wiederholen Sie bei einer Bereitstellung auf mehreren Computern die Schritte 1 bis 6 für alle anderen Computer der ArcGIS Server-Site.

Hinzufügen weiterer Pakete

Führen Sie die folgenden Schritte aus, um der vorhandenen Conda-Umgebung weitere Pakete hinzuzufügen:

  1. Melden Sie sich bei Ihrem ArcGIS Server-Computer an. Je nach Speicherort Ihrer vorhandenen Conda-Umgebung benötigen Sie eventuell Administratorberechtigungen.
  2. Öffnen Sie die Python 3-Befehlszeile über das Startmenü. Je nach Betriebssystem kann sie sich im ArcGIS Server-Ordner befinden. Wenn sie nicht im Startmenü angezeigt wird, können Sie die Datei proenv.bat unter <install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\Scripts starten.
  3. Führen Sie conda install für die Pakete aus, die bereitgestellt werden müssen. Verwenden Sie pip install nur, wenn conda install nicht verfügbar ist.
  4. Starten Sie den Geoverarbeitungsservice in ArcGIS Server Manager neu.
  5. Starten Sie optional den ArcGIS Server-Service neu. Alle Services werden in wenigen Minuten neu gestartet.
  6. Wenn Sie über eine Bereitstellung auf mehreren Computern verfügen, wiederholen Sie die Schritte 1 bis 5 für jeden Computer der ArcGIS Server-Site.

Festlegen einer Python-Umgebung für einen einzelnen Geoverarbeitungsservice

Führen Sie die folgenden Schritte aus, um die Python-Standardumgebung des Servers zu klonen, Python-Pakete von Drittanbietern zu installieren und die Service-Eigenschaften des Geoverarbeitungsservice zu bearbeiten:

  1. Melden Sie sich bei Ihrem ArcGIS Server-Computer an, und öffnen Sie die Python 3-Befehlszeile aus dem Startmenü. Es wird empfohlen, die Eingabeaufforderung als Administrator auszuführen, sonst können Sie die Umgebung in bestimmten Verzeichnissen möglicherweise nicht klonen.
  2. Klonen Sie die Python-Standardumgebung des Servers im Python-Umgebungsverzeichnis der ArcGIS Server-Installation mit einem neuen Umgebungsnamen, z. B. newenvname. Verwenden Sie dazu den Befehl conda create --clone arcgispro-py3 --prefix "<install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\envs\newenvname" --pinned --no-shortcuts. Ersetzen Sie das Präfix durch Ihr Installationsverzeichnis und den neuen Umgebungsnamen. Zum Klonen der Umgebung in anderen Verzeichnissen außerhalb des ArcGIS Server-Installationsverzeichnisses führen Sie conda create --clone arcgispro-py3 --prefix "<fullpath>\outsideenvname" --pinned --no-shortcuts aus.
  3. Aktivieren Sie die neue Umgebung mithilfe von activate newenvname im Eingabeaufforderungsfenster. Wenn Sie ein Verzeichnis außerhalb des Python-Umgebungsverzeichnisses der ArcGIS Server-Installation verwenden, stellen Sie den vollständigen Pfad zu der geklonten Umgebung mit activate <fullpath>\outsideenvname bereit.
  4. Installieren Sie die Python-Pakete mit conda install packagename=version. Auch wenn es nicht erforderlich ist, sollten Sie darauf achten, dass die für die Veröffentlichung in ArcGIS Pro verwendete Paketversion und die auf dem Server installierte Paketversion übereinstimmen.
  5. Wechseln Sie nach der Installation aller Pakete zum ArcGIS Server-Administratorverzeichnis. Navigieren Sie unter Resources unten auf der Seite zu Services.
  6. Wählen Sie den Geoverarbeitungsservice aus, für den Sie eine Python-Umgebung festlegen möchten.
  7. Klicken Sie unter Supported Operations unten auf der Seite auf Edit.
  8. Fügen Sie in der Service-JSON das Schlüsselwertpaar "condaEnvironmentPath": "newenvname" oder "condaEnvironmentPath": "<full path to newenvname>" zu den Service-Eigenschaften hinzu, wenn die geklonte Umgebung sich im Python-Umgebungsverzeichnis der ArcGIS Server-Installation befindet. Wenn Sie ein Verzeichnis außerhalb des Python-Umgebungsverzeichnisses der ArcGIS Server-Installation verwenden, müssen Sie den vollständigen Pfad zu der geklonten Umgebung angeben. Im Folgenden finden Sie eine vereinfachte JSON-Datei der Service-Eigenschaften mit der neuen condaEnvironmentPath-Eigenschaft:

    Bereitstellen von benutzerdefinierten Python-Paketen für ArcGIS Server

    Simplified service properties with a cloned Python environment in the ArcGIS Server installation's Python environment directory.

    {
     "serviceName": "gvonly",
     "type": "GPServer",
     "description": "",
     "allowedUploadFileTypes": "",
     "properties": {
      "toolbox": "C:\\arcgisserver\\directories\\arcgissystem\\arcgisinput\\gvonly.GPServer\\extracted\\p30\\gvonly.tbx",
      "condaEnvironmentPath": "newenvname",
      "showMessages": "INFO"
     },
     "portalProperties": {
      "isHosted": false,
      "portalItems": [{
       "itemID": "4921223df97744a593d0b776666b9da9",
       "type": "GPServer"
      }]
     },
     "extensions": [{
      "typeName": "WPSServer",
      "properties": {
       "serviceType": "",
       "name": ""
      }
     }],
     "frameworkProperties": {},
     "datasets": []
    }

  9. Klicken Sie auf die Schaltfläche Save Edits, um die Änderungen zu speichern.

Der Service wird automatisch neu gestartet.