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 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.

Hinweis:

Wenn Sie eine geklonte Umgebung verwenden, die vor der Anwendung des ArcGIS Server log4j-Patches erstellt wurde, müssen Sie die Umgebung aktivieren, in dem Sie conda activate your_environment und anschließend conda update saspy ausführen, um die Sicherheitslücke zu schließen, die bei Verwendung von log4j mit der älteren saspy-Version in der geklonten Umgebung bestand. Wenn das Patch bereits installiert ist, setzen Sie beim Klonen der Standardumgebung das Kennzeichen --pinned wie in den nachfolgenden Anweisungen beschrieben. Nachdem Sie die geklonte Umgebung aktiviert haben, führen Sie conda update saspy aus, um zu verhindern, um die log4j-Sicherheitslücke in der Umgebung zu beseitigen.

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 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 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.
  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 weitere Pakete hinzuzufügen:

  1. Melden Sie sich bei Ihrem ArcGIS Server-Computer an. Die erfordert möglicherweise Administratorberechtigungen.
  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 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" 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, geben Sie den vollständigen Pfad zu der geklonten Umgebung an.

    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\\p20\\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.
  10. 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 PythonPython 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 bei diesem Veröffentlichungsprozess alle Pfade in das richtige Format konvertiert werden.