Bereitstellen von benutzerdefinierten Python-Paketen für ArcGIS Server
In ArcGIS Server ist eine Python 3-basierte Conda-Umgebung enthalten. Die Python-Installation von ArcGIS Server enthält Pakete wie beispielsweise numpy und matplotlib. Wenn Sie jedoch zusätzliche benutzerdefinierte Python-Pakete für Ihre Skriptwerkzeuge und Ihre Python-Toolbox installieren möchten, führen Sie die folgenden Schritte aus. Wie in ArcGIS Pro werden in ArcGIS Server Python-Umgebungen mit Conda verwaltet. Weitere Informationen zum Verwenden von und Arbeiten mit Conda finden Sie in der Einführung zu Conda.
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 immer nur eine Python-Umgebung, die für alle Geoverarbeitungsservices gilt, aktiv sein. Wenn Services eigene Python-Umgebungen benötigen, dann können Sie auch Python-Umgebungen für einzelne Geoverarbeitungsservices festlegen.
Beim Klonen der Umgebung müssen Sie sicherstellen, dass das ArcGIS-Server-Konto die Berechtigungen zum Lesen und Ausführen in der geklonten Umgebung besitzt, da andernfalls Python nicht initialisiert werden und kein Python-Code in Ihrem Werkzeug ausgeführt werden kann.
Während der Deinstallation müssen Sie die geklonte Umgebung manuell verwalten. Nach einem Upgrade von ArcGIS Server müssen Sie auch für eine geklonte Python-Umgebung mit dem Befehl proup manuell ein Upgrade durchführen.
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 für alle Geoverarbeitungsservices bereitzustellen.
Hinweis:
Dabei wird auch die Python-Umgebung der Geoverarbeitungsservices Ihres Systems verändert.
Melden Sie sich bei Ihrem ArcGIS Server-Computer mit dem ArcGIS-Server-Konto oder einem Konto an, das Zugriff auf die Python-Standardumgebung und das Zielverzeichnis für die geklonte Umgebung hat.
Starten Sie den Wine Explorer, um das Klonen der Standardumgebung vorzubereiten.
Führen Sie den folgenden Befehl aus:
source <install>/framework/etc/arcenv wine cmdSobald Wine aktiviert ist, klonen Sie die Umgebung mit folgendem Befehl:
Hinweis:
Für den Befehl
conda-procloneist kein Internetzugriff erforderlich.Hinweis:
Stellen Sie sicher, dass das ArcGIS-Server-Konto Lese- und Schreibzugriff auf die geklonte Umgebung hat.
Hinweis:
Die Standardumgebung befindet sich in der Regel unter
<install>\framework\runtime\ArcGIS\bin\Python\envs\arcgispro-py3.cd "Z:\data\arcgis\server\framework\runtime\ArcGIS\bin\Python\Scripts" conda-proclone -i <path to default environment> <path to cloned environment>Um weitere Informationen über
conda-proclonezu erhalten, führen Sieconda-proclone -haus.Aktivieren Sie die geklonte Umgebung, indem Sie
activate <path to cloned environment>im Wine-Befehl ausführen.Installieren Sie die benutzerdefinierten Pakete in der aktivierten geklonten Umgebung im Wine-Befehl.
Hinweis:
Die meisten Python-Pakete von Drittanbietern können verwendet werden. Wenn das Paket jedoch (direkt oder indirekt über das Windows-Betriebssysstem) WIN32-Aufrufe ausführt, funktionieren diese Pakete auch bei erfolgreicher Konfiguration nicht korrekt.
Der folgende Befehl ist ein Beispiel für die Installation des Python-Pakets
flask.conda install flaskTauschen Sie mit dem folgenden Befehl im Wine-Befehl Ihren Server gegen die geklonte Umgebung aus:
conda proswap -n <cloned environment> --all-users`Hinweis:
Wenn Sie das ArcGIS-Server-Konto für die Sitzung verwenden, ist der Befehl
--all-usersnicht erforderlich. Wenn Sie Ihre geklonte Umgebung außerhalb des Standardordners~\Python\envskopieren, dann müssen Sie den vollständigen Pfad zur Umgebung angeben.Hinweis:
Nach dem Austausch verwenden alle Ihre Geoverarbeitungsservices, auch die Geoverarbeitungsservices des Systems, die geklonte Umgebung.
Starten Sie Ihren ArcGIS-Server-Service neu.
Starten Sie eine neue Sitzung, oder beenden Sie mit
exit()den Wine-Befehl.Hinweis:
Die Skripte
startserverundstopserverbefinden sich im VerzeichnisscriptsIhrer ArcGIS Server-Installation.Wiederholen Sie bei einer Bereitstellung auf mehreren Computern die obigen Schritte auf allen anderen Computern Ihrer ArcGIS-Server-Site.
Festlegen einer Python-Umgebung für einen einzelnen Geoverarbeitungsservice
Führen Sie die folgenden Schritte aus, um eine Umgebung für einen einzelnen Geoverarbeitungsservice einzurichten.
Melden Sie sich bei Ihrem ArcGIS Server-Computer mit dem ArcGIS-Server-Konto oder einem Konto an, das Zugriff auf die Python-Standardumgebung und das Zielverzeichnis für die geklonte Umgebung hat.
Starten Sie den Wine Explorer, um das Klonen der Standardumgebung vorzubereiten.
Führen Sie den folgenden Befehl aus:
source <install>/framework/etc/arcenv wine cmdSobald Wine aktiviert ist, klonen Sie die Umgebung mit folgendem Befehl:
Hinweis:
Für den Befehl
conda-procloneist kein Internetzugriff erforderlich.Hinweis:
Stellen Sie sicher, dass das ArcGIS-Server-Konto Lese- und Schreibzugriff auf die geklonte Umgebung hat.
Hinweis:
Die Standardumgebung befindet sich in der Regel unter
<install>\framework\runtime\ArcGIS\bin\Python\envs\arcgispro-py3.cd "<path to server install>\framework\runtime\ArcGIS\bin\Python\Scripts" conda-proclone -i <path to default environment> <path to cloned environment>Um weitere Informationen über
conda-proclonezu erhalten, führen Sieconda-proclone -haus.Aktivieren Sie die geklonte Umgebung, indem Sie
activate <path to cloned environment>im Wine-Befehl ausführen.Installieren Sie die benutzerdefinierten Pakete in der aktivierten geklonten Umgebung im Wine-Befehl.
Hinweis:
Die meisten Python-Pakete von Drittanbietern können verwendet werden. Wenn das Paket jedoch (direkt oder indirekt über das Windows-Betriebssysstem) WIN32-Aufrufe ausführt, funktionieren diese Pakete auch bei erfolgreicher Konfiguration nicht korrekt.
Der folgende Befehl ist ein Beispiel für die Installation des Python-Pakets
flask.conda install flaskNachdem alle Pakete installiert wurden, navigieren Sie zum ArcGIS-Server-Administratorverzeichnis, und klicken Sie auf die Ressource Services.
Wählen Sie den Geoverarbeitungsservice aus, für den Sie eine Python-Umgebung festlegen möchten.
Klicken Sie unter "Supported Operations" unten auf der Seite auf Edit.
Fügen Sie in der JSON-Datei des Service das Schlüsselwertpaar
"condaEnvironmentPath": "<full path to cloned-env>"zu den Service-Eigenschaften hinzu.Hinweis:
Wenn Sie ein Verzeichnis außerhalb des Python-Umgebungsverzeichnisses der ArcGIS Server-Installation verwenden, müssen Sie den vollständigen Pfad zu Ihrer geklonten Umgebung angeben.
Nachfolgend ist eine vereinfachte JSON für Service-Eigenschaften mit der Eigenschaft
condaEnvironmentPathdargestellt:{ "serviceName": "regionalAnalysis", "type": "GPServer", "description": "", "allowedUploadFileTypes": "", "properties": { "toolbox": "Z:\\data\\arcgis\\arcgisserver\\directories\\arcgissystem\\arcgisinput\\Analysis.GPServer\\extracted\\p30\\RegionalAnalysis.tbx", "condaEnvironmentPath": <"path to cloned environment">, "showMessages": "INFO" }, "portalProperties": { "isHosted": false, "portalItems": [{ "itemID": "4921223df97744a593d0b776666b9da9", "type": "GPServer" }] }, "extensions": [{ "typeName": "WPSServer", "properties": { "serviceType": "", "name": "" } }], "frameworkProperties": {}, "datasets": [] }Klicken Sie auf die Schaltfläche Save Edits, um die Änderungen zu speichern.
Der Service wird automatisch neu gestartet.
Durchführen eines Upgrades einer geklonten Python-Umgebung nach einem ArcGIS Server-Upgrade
Bei einem Upgrade von ArcGIS Server auf eine neuere Version war es bisher erforderlich, die zuvor geklonten Umgebungen zu verwerfen. Danach mussten Sie die Python-Umgebung der aktualisierten ArcGIS Server-Version klonen und die Services neu konfigurieren.
Ab ArcGIS Server 12.1 können Sie den Befehl conda proup verwenden, um ein Upgrade der geklonten Python-Umgebungen früherer ArcGIS Server-Versionen durchzuführen. Gehen Sie dazu wie folgt vor:
Melden Sie sich bei Ihrem ArcGIS Server-Computer mit dem ArcGIS-Server-Konto oder einem Konto an, das Zugriff auf die geklonte Umgebung und die Serverinstallation hat.
Starte den Wine-Befehl, und wechseln Sie in das Verzeichnis
<install>\server\framework\runtime\ArcGIS\bin\Python\Scripts.Führen Sie ein Upgrade der Umgebung durch, indem Sie entweder
conda proup -n <environment name>oderconda proup -p <environment directory path>ausführen.Starten Sie nach dem Upgrade der Python-Umgebung alle von dieser Conda-Umgebung verwendeten Geoverarbeitungsservices neu, oder starten Sie den ArcGIS-Server-Service neu.
Verwenden Sie conda proup --help, um weitere Informationen zum Befehl conda proup zu erhalten. Diese Funktion kann nicht zum Durchführen eines Downgrades einer Umgebung nach einem Downgrade von ArcGIS Server verwendet werden. Diese Funktion ist in nicht verbundenen Umgebungen nicht verfügbar.
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 für alle Geoverarbeitungsservices bereitzustellen. Beachten Sie, dass dabei auch die Python-Umgebung der Geoverarbeitungsservices Ihres Systems verändert wird.
Melden Sie sich bei Ihrem ArcGIS Server-Computer an, und öffnen Sie das Eingabeaufforderungsfenster als Administrator.
Hinweis:
Je nach Speicherort Ihrer vorhandenen Conda-Umgebung benötigen Sie eventuell Administratorberechtigungen.
Wechseln Sie in das Verzeichnis
<install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\Scripts.Verwenden Sie entweder
conda createoderconda proclone, um die Python-Standardumgebung des Servers mit einem neuen Umgebungsnamen zu klonen:Hinweis:
Der vorgeschlagene Speicherort befindet sich im Python-Umgebungsverzeichnis der ArcGIS Server-Installation. Sie können aber auch einen anderen Speicherort angeben, auf den das ArcGIS-Server-Konto Zugriff hat.
- Verwenden Sie folgenden Befehl, um die Umgebung mit
conda createzu klonen:
conda create --clone arcgispro-py3 --prefix <"cloned environment path"> --pinned --no-shortcutsAb 12.1 können Sie
conda procloneverwenden, um die Umgebung zu klonen, wenn Ihre Instanz von ArcGIS Server keinen Zugriff auf das Internet hat oder wenn Sie für eine schnellere Verarbeitung eine lokale Kopie einer vorhandenen Umgebung bevorzugen. Sie könnenarcigspro-py3durch den Pfad zu einer anderen vorhandenen Python-Umgebung als der Eingabeumgebung, die geklont werden soll, ersetzen.`conda proclone <"cloned environment path"> --input-env arcgispro-py3`
- Verwenden Sie folgenden Befehl, um die Umgebung mit
Führen Sie
conda proswap -n <new environment name> --all-usersaus, um die geklonte Umgebung zu aktivieren.Hinweis:
Falls Sie sich als Benutzer eines ArcGIS-Server-Kontos bei Ihrem Computer angemeldet haben, ist die Angabe des Arguments
--all-usersoptional. Andernfalls ist dieses Argument erforderlich.Hinweis:
Wenn sich die geklonte Conda-Umgebung außerhalb von
{ServerInstallation}\framework\runtime\ArcGIS\bin\Python\envs\befindet, geben Sie mitconda proswap -p "<full-path-to-cloned-directory>" --all-usersden vollständigen Pfad zum betreffenden Speicherort an.Installieren Sie die Python-Pakete von Drittanbietern, indem Sie
conda installausführen.Hinweis:
Verwenden Sie
pip installnur dann, wennconda installnicht verfügbar ist.Starten Sie den ArcGIS Server-Service neu.
Hinweis:
Es dauert einige Minuten, bis alle Services wieder online sind.
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:
Melden Sie sich bei Ihrem ArcGIS Server-Computer an. Je nach Speicherort Ihrer vorhandenen Conda-Umgebung benötigen Sie möglicherweise Administratorberechtigungen.
Ö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
proenv.batunter<install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\Scriptsstarten.Führen Sie
conda installfür die Pakete aus, die bereitgestellt werden müssen.Hinweis:
Verwenden Sie
pip installnur dann, wennconda installnicht verfügbar ist.Starten Sie den Geoverarbeitungsservice in ArcGIS Server Manager neu.
Starten Sie optional den ArcGIS-Server-Service neu.
Hinweis:
Alle Services werden in wenigen Minuten neu gestartet.
Wenn Sie eine Bereitstellung auf mehreren Computern verwenden, dann 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:
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. Andernfalls können Sie die Umgebung in bestimmten Verzeichnissen möglicherweise nicht klonen.
Verwenden Sie entweder
conda createoderconda proclone, um die Python-Standardumgebung des Servers mit einem neuen Umgebungsnamen zu klonen:Hinweis:
Der vorgeschlagene Speicherort befindet sich im Python-Umgebungsverzeichnis der ArcGIS Server-Installation. Sie können aber auch einen anderen Speicherort angeben, auf den das ArcGIS-Server-Konto Zugriff hat.
- Verwenden Sie folgenden Befehl, um die Umgebung mit
conda createzu klonen:
conda create --clone arcgispro-py3 --prefix <"cloned environment path"> --pinned --no-shortcutsAb 12.1 können Sie
conda procloneverwenden, um die Umgebung zu klonen, wenn Ihre Instanz von ArcGIS Server keinen Zugriff auf das Internet hat oder wenn Sie für eine schnellere Verarbeitung eine lokale Kopie einer vorhandenen Umgebung bevorzugen. Sie könnenarcigspro-py3durch den Pfad zu einer anderen vorhandenen Python-Umgebung als der Eingabeumgebung, die geklont werden soll, ersetzen.`conda proclone <"cloned environment path"> --input-env arcgispro-py3`
- Verwenden Sie folgenden Befehl, um die Umgebung mit
Aktivieren Sie die neue Umgebung mithilfe von
activate <new environment name>im Eingabeaufforderungsfenster. Wenn Sie ein Verzeichnis außerhalb des Python-Umgebungsverzeichnisses der ArcGIS Server-Installation verwenden, müssen Sie mitactivate <fullpath>\<new environment name>den vollständigen Pfad zur geklonten Umgebung angeben.Installieren Sie die Python-Pakete mit
conda install packagename=version.Sie sollten darauf achten, dass die für die Veröffentlichung in ArcGIS Pro verwendete Paketversion und die auf dem Server installierte Paketversion übereinstimmen.
Nachdem alle Pakete installiert wurden, navigieren Sie zum ArcGIS-Server-Administratorverzeichnis, und klicken Sie unter Resources auf Services.
Wählen Sie den Geoverarbeitungsservice aus, für den Sie eine Python-Umgebung festlegen möchten.
Klicken Sie unter "Supported Operations" unten auf der Seite auf Edit.
Fügen Sie in der Service-JSON das Schlüsselwertpaar
"condaEnvironmentPath": <"new environment name">oder"condaEnvironmentPath": "<full path to new environment>"zu den Service-Eigenschaften hinzu, wenn sich die geklonte Umgebung 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 Ihrer geklonten Umgebung angeben. Das folgende Beispiel ist eine vereinfachte JSON für Service-Eigenschaften mit der EigenschaftcondaEnvironmentPath:{ "serviceName": "gvonly", "type": "GPServer", "description": "", "allowedUploadFileTypes": "", "properties": { "toolbox": "C:\\arcgisserver\\directories\\arcgissystem\\arcgisinput\\gvonly.GPServer\\extracted\\p30\\gvonly.tbx", "condaEnvironmentPath": <"new environment name">, "showMessages": "INFO" }, "portalProperties": { "isHosted": false, "portalItems": [{ "itemID": "4921223df97744a593d0b776666b9da9", "type": "GPServer" }] }, "extensions": [{ "typeName": "WPSServer", "properties": { "serviceType": "", "name": "" } }], "frameworkProperties": {}, "datasets": [] }Klicken Sie auf die Schaltfläche Save Edits, um die Änderungen zu speichern.
Der Service wird automatisch neu gestartet.
Durchführen eines Upgrades einer geklonten Python-Umgebung nach einem ArcGIS Server-Upgrade
Verwenden Sie den Befehl conda proup, um ein Upgrade der geklonten Python-Umgebungen früherer ArcGIS Server-Versionen durchzuführen. Gehen Sie dazu wie folgt vor:
Melden Sie sich bei Ihrem ArcGIS Server-Computer an, und öffnen Sie das Eingabeaufforderungsfenster als Administrator.
Wechseln Sie in das Verzeichnis
<install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\Scripts.Führen Sie ein Upgrade der Umgebung durch, indem Sie entweder
conda proup -n <environment name>oderconda proup -p <environment directory path>ausführen.Starten Sie nach dem Upgrade der Python-Umgebung alle von dieser Conda-Umgebung verwendeten Geoverarbeitungsservices neu, oder starten Sie den ArcGIS-Server-Service neu.
Verwenden Sie conda proup --help, um weitere Informationen zum Befehl conda proup zu erhalten. Diese Funktion kann nicht zum Durchführen eines Downgrades einer Umgebung nach einem Downgrade von ArcGIS Server verwendet werden. Diese Funktion ist außerdem in einer nicht verbundenen Umgebung nicht verfügbar.