ArcGIS Server ermöglicht die Verwendung einer Python 3-Runtime für Befehlszeilen-ArcPy-Skripte. Python 3.x wird mit ArcGIS Server installiert. Sie können jedoch ein separates Runtime-Paket für Python 3 installieren, das die Verwendung von Python 3 mit ArcGIS Server vereinfacht.
Hinweis:
Ab ArcGIS Server 10.9.1 wird nur Python 3 unterstützt, und Python 2.7 wird nicht mehr installiert.
Erste Schritte
Python bietet Drittanbieterbibliotheken, die in ArcGIS genutzt werden können; die Verwaltung der installierten Pakete kann jedoch eine komplexe und zeitaufwändige Aufgabe sein, insbesondere, wenn an mehreren Projekten gleichzeitig gearbeitet oder Code für andere Benutzer freigegeben werden soll. Um die Verwendung der Python 3-Runtime für ArcGIS Server for Linux zu vereinfachen, können Sie das arcgis-server-py3-Paket mit conda herunterladen und installieren.
Conda kann bei Bedarf von der Anaconda-Website heruntergeladen werden.
Installieren Sie das arcgis-server-py3-Paket, um auf ArcGIS Python-Funktionen, einschließlich ArcPy, zuzugreifen. Verwenden Sie zur Installation von Python 3 in einer Conda-Umgebung den folgenden Befehl:
conda install -c esri arcgis-server-py3=<version>
Der Wert <version> gibt die aktuelle Version der Bibliothek an, die mit Ihrer aktuellen ArcGIS Server-Version identisch ist, und zwar im Format n.n.n. Beispiel für ArcGIS Server 10.9.1:
conda install -c esri arcgis-server-py3=10.9.1
Durch die Installation des arcgis-server-py3-Pakets werden ArcPy sowie unterstützte Geoverarbeitungswerkzeuge und alle Drittanbieteranforderungen hinzugefügt.
Falls Sie das arcgis-server-py3-Paket nicht installieren, müssen Sie Wine aufrufen, wenn Sie die python.exe-Datei ausführen, die unter /arcgis/server/framework/runtime/ArcGIS/bin/Python/envs/arcgispro-py3/ im ArcGIS Server-Installationsverzeichnis installiert ist.
Migration
Die Verwendung der Python 3-Runtime mit ArcGIS Server unterscheidet sich von Python 2 für ArcGIS Server und andere ArcGIS-Produkte, z. B. ArcMap. Es müssen zwei primäre Unterschiede berücksichtigt werden: die Unterschiede innerhalb von ArcPy und die Änderung der Python-Versionen.
Änderungen der Funktionalität in ArcPy
Bis auf einige Ausnahmen sind viele Geoverarbeitungswerkzeuge weiterhin in der Python 3-Runtime für ArcGIS Server verfügbar. Die Werkzeuge in den Toolboxes "Parcel Fabric" (ArcMap), "Schematics" und "Tracking Analyst" sind nicht enthalten. Zusätzliche Werkzeuge in anderen Toolboxes sind ebenfalls nicht verfügbar. Eine vollständige Liste der unterstützten Geoverarbeitungswerkzeuge finden Sie in der readme-Datei, die im arcgis-server-py3-Paket enthalten ist.
Das Modul arcpy.mapping wurde entfernt und durch das Modul arcpy.mp in ArcGIS Pro ersetzt. Das Modul arcpy.na umfasst außerdem Änderungen, von denen viele mit der Änderung von arcpy.mapping in arcpy.mp in Beziehung stehen.
Python-Versionsänderung
In der ArcGIS Server Python-Runtime wird Python 3 verwendet. Dies stellt eine erhebliche Änderung dar. Die Releases in der Python 3-Serie sind nicht mit der Python 2-Serie kompatibel. Zwar ist der Großteil der Sprache identisch, aber viele wesentliche Details haben sich deutlich geändert, z. B. die Funktionsweise von Zeichenfolgen und Wörterbüchern oder der Aufbau der Standardbibliothek.
Mittlerweile wurden die meisten wichtigen Dritthersteller-Bibliotheken durch die Python-Community auf Python 3 portiert, und in der Python-Community wurde vereinbart, dass alle neuen Entwicklungsprojekte in Python 3 erfolgen.
Da Version 10.9.1 die letzte Version mit Python 2.7 ist, müssen Sie mit der Aktualisierung des Python-Codes für Python 3 beginnen. Bei einer einfachen Konvertierung von Python 2 zu Python 3 kann das Befehlszeilen-Dienstprogramm 2to3 verwendet werden, um einen Großteil des Vorgangs zu automatisieren. Es ist wichtig zu wissen, dass 2to3 ein ausgezeichnetes Werkzeug, aber keine komplette Lösung (mitunter als 95-Prozent-Lösung bezeichnet) ist, und dass möglicherweise zusätzliche Änderungen erforderlich sind.
Beachten Sie, dass bei einfacheren Python-Skripten möglicherweise keine Änderungen erforderlich sind und diese ohne Änderung in beiden Versionen korrekt ausgeführt werden können.