Python 3-Runtime für ArcGIS Server unter Linux
Dieses Thema ist für ArcGIS Data Enterprise unter Windows nicht relevant.
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.
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 unter ArcGIS Server for Linux zu vereinfachen, verwenden Sie conda oder Miniconda, um das Paket arcgis-server-py3 herunterzuladen und zu installieren. Für die Python 3-Runtime unter ArcGIS Server for Linux ist ein 64-Bit-Installationsprogramm erforderlich.
Conda oder Miniconda kann bei Bedarf von der Anaconda-Website heruntergeladen werden.
Legen Sie in einem Terminal die Variable "ARCGISHOME" auf das ArcGIS Server-Installationsverzeichnis fest, wenn Sie die conda-Umgebung für die Python 3-Runtime unter ArcGIS Server for Linux aktivieren: export ARCGISHOME=/path/to/arcgis/server.
Installieren Sie das Paket arcgis-server-py3, um auf ArcGIS-Funktionen, einschließlich ArcPy, zuzugreifen. Verwenden Sie zur Installation der Python 3-Runtime unter ArcGIS Server for Linux in einer Conda-Umgebung den folgenden Befehl:
conda install -c esri arcgis-server-py3=<ArcGIS Server version>
Der Wert <ArcGIS Server 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 11.1:
conda install -c esri arcgis-server-py3=11.1.0
Mit dem folgenden Befehl überprüfen Sie die Version des Pakets "arcgis-server-py3":
conda list arcgis-server-py3
Durch die Installation des Pakets arcgis-server-py3 werden ArcPy sowie unterstützte Geoverarbeitungswerkzeuge und alle Drittanbieteranforderungen hinzugefügt.
Falls Sie das Paket arcgis-server-py3 nicht installieren, müssen Sie Wine aufrufen, wenn Sie die Datei python.exe ausführen, die unter path/to/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 der der Python 2-Runtime mit ArcGIS Server. Sie müssen zwei primäre Unterschiede berücksichtigen: 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 "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 Paket arcgis-server-py3 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.
Änderung der Python-Version
In der Python-Runtime für ArcGIS Server 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 Drittanbieter-Bibliotheken durch die Python-Community auf Python 3 portiert, und in der Python-Community wurde vereinbart, dass alle neuen Entwicklungsprojekte in Python 3 durchgeführt werden.
In ArcGIS Server wird Python 2.7 nicht mehr unterstützt. Damit Sie Ihren Python-Code weiterhin in ArcGIS Server verwenden können, müssen Sie dessen Funktionsfähigkeit in Python 3 sicherstellen.
Bei einer einfachen Konvertierung von Python 2 zu Python 3 können Sie das Befehlszeilen-Dienstprogramm 2to3 verwenden, 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.