Skip To Content

Bereitstellen von benutzerdefinierten Python-Paketen für ArcGIS Server

ArcGIS Server enthält Python 2.7 für 64-Bit-Versionen von Windows. Ab ArcGIS Enterprise 10.5 ist in ArcGIS Server eine Conda-Umgebung enthalten, die auf Python 3 basiert.

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 Updates durchzuführen. Für ArcGIS Server kann jeweils nur eine Python-Umgebung 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 mit dem ArcGIS Server-Konto bei Ihrem ArcGIS Server-Computer an, und öffnen Sie die 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 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". Ersetzen Sie das Präfix durch Ihr Installationsverzeichnis und den neuen Umgebungsnamen.
  4. Um die geklonte Umgebung zu aktivieren, führen Sie proswap newenvname aus.
  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 auf der Registerkarte Dienste des Windows Task-Managers oder mit "Windows-Dienste" neu. Es dauert einige Minuten, bis alle Services wieder online sind.
  7. Wiederholen Sie ggf. die Schritte 1 bis 6 für jeden Computer der ArcGIS Server-Site.

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

  1. Melden Sie sich bei Ihrem ArcGIS Server-Computer an.
  2. Öffnen Sie die Python 3-Befehlszeile über das Startmenü. Je nach Betriebssystem kann sie sich im ArcGIS Server-Ordner befinden.
  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. Optional können Sie den ArcGIS Server-Service auf der Registerkarte Dienste des Windows Task-Managers neu starten. Alle Services sind nach ein paar Minuten wieder online.
  6. Wiederholen Sie ggf. 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 mit dem ArcGIS Server-Konto bei Ihrem ArcGIS Server-Computer an, und öffnen Sie die 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 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". Ersetzen Sie das Präfix durch Ihr Installationsverzeichnis und den neuen Umgebungsnamen.
  4. Aktivieren Sie die neue Umgebung mithilfe von activate newenvname im Eingabeaufforderungsfenster.
  5. 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.
  6. Wechseln Sie nach der Installation aller Pakete zum ArcGIS Server-Administratorverzeichnis. Navigieren Sie unter Resources unten auf der Seite zu Services.
  7. Wählen Sie den Geoverarbeitungsservice aus, für den Sie eine Python-Umgebung festlegen möchten.
  8. Klicken Sie unter Supported Operations unten auf der Seite auf Edit.
  9. Fügen Sie in der JSON-Datei des Service das Schlüsselwertpaar "condaEnvironmentPath": "<install>\\ArcGIS\\Server\\framework\\runtime\\ArcGIS\\bin\\Python\\envs\\newenvname" den Eigenschaften hinzu. Eine vereinfachte JSON-Datei der Service-Eigenschaften mit der neuen Eigenschaft condaEnvironmentPath.

    Service Properties

    {
     "serviceName": "gvonly",
     "type": "GPServer",
     "description": "",
     "allowedUploadFileTypes": "",
     "properties": {
      "toolbox": "C:\\arcgisserver\\directories\\arcgissystem\\arcgisinput\\gvonly.GPServer\\extracted\\p20\\gvonly.tbx",
      "condaEnvironmentPath": "C:\\Program Files\\ArcGIS\\Server\\framework\\runtime\\ArcGIS\\bin\\Python\\envs\\flaskonly"
     },
     "portalProperties": {
      "isHosted": false,
      "portalItems": [{
       "itemID": "4921223df97744a593d0b776666b9da9",
       "type": "GPServer"
      }]
     },
     "extensions": [{
      "typeName": "WPSServer",
      "properties": {
       "serviceType": "",
       "name": ""
      }
     }],
     "frameworkProperties": {},
     "datasets": []
    }
  10. Klicken Sie auf die Schaltfläche Save Edits, um die Änderungen zu speichern.
  11. Der Service wird automatisch neu gestartet.

Services, die aus ArcGIS Desktop veröffentlicht werden

Die folgenden Schritte gelten für Geoverarbeitungsservices, die aus ArcMap veröffentlicht werden, und für das auf Python 2.7 basierende arcpy-Modul. Wiederholen Sie diese Schritte für jeden Computer der ArcGIS Server-Site. Das Paket wird in der Python-2.7-Standardumgebung des Servers installiert und auf alle Services angewendet, die über ArcGIS Desktop veröffentlicht wurden.

  1. Laden Sie die 64-Bit-Version für Windows des zu installierenden Drittanbieterpakets herunter.
  2. Doppelklicken Sie auf die .msi- oder .exe-Datei, um das Paket zu installieren.

Benutzerdefinierte Pakete werden in der Regel im Verzeichnis C:\Python27\ArcGISx6410.8\lib\site-packages installiert.

Testen benutzerdefinierter Python-Pakete für aus ArcGIS Desktop veröffentlichte Services

Um zu testen, ob das Paket ordnungsgemäß installiert wurde, schreiben Sie ein Python-Skript, welches das von Ihnen installierte Paket importiert, und führen Sie das Skript aus. Falls Sie mit dem Ausführen von eigenständigen Skripten nicht vertraut sind, führen Sie die folgenden Schritte aus.

  1. Öffnen Sie das Terminal-Fenster.
  2. Führen Sie Python 2.7 mit dem Skript als Argument auf dem Server aus, z. B.: <ArcGISServer_InstallDir>/arcgis/server/tools/python ~/projectX/mytestscript.py.

Hinweis:

Von einer ArcGIS Server-Installation (Linux) werden Windows 64-Bit Python-Bibliotheken installiert. Daher sollten Sie für eigenständige Python-Skripte beim Zugriff auf Daten und andere Python-Module immer das Windows-Pfadtrennzeichen (\) verwenden. Beachten Sie außerdem, dass ein Z:\-Verzeichnis vorhanden ist, das / auf dem Linux-System zugeordnet ist. In einem Python-Skript können Sie mit der Z:\-Zuordnung auf Daten und andere Python-Module zugreifen. Beispielsweise kann auf Daten in /myuser/myproject/data unter Verwendung von z:\myuser\myproject\data zugegriffen werden.

Dies gilt nicht für Python-Skripte, die Sie aus ArcGIS Desktop veröffentlichen, da beim Veröffentlichungsprozess alle Pfade in das richtige Format konvertiert werden.