Verwenden Sie die ArcGIS-Funktionalität in Python, ohne ArcMap auszuführen (z. B. separater Editor / separate Umgebung)?

26

Ich versuche, den nächsten Schritt in der Programmierung von ArcGIS mit Python zu machen und zu prüfen, ob es tatsächlich möglich ist, mein Skript / meinen Code auszuführen, ohne ArcMap laden und in das Python-Fenster einfügen zu müssen. Ich stelle mir vor, ich würde mit dieser Ansicht eine Python-spezifische IDE ausführen, die etwas aus ArcGIS lädt.

Wie wäre ich dazu gekommen?


Update: Zusammenfassung der Lösung

Ich bin die Eclipse + PyDev-Route gegangen. Hier sind meine Notizen zur Installation und zum Funktionieren:

Laden Sie Eclipse herunter

Dies ist angesichts der verschiedenen verfügbaren Varianten (Java, Java EE, C / C ++ usw.) etwas verwirrend. Ich habe mich für C / C ++ entschieden, da mir das vertraut ist. Es spielt keine Rolle, da PyDev nach diesem Schritt installiert wird. Wählen Sie aus, was Sie wollen.

Installieren Sie PyDev

PyDev wird über Eclipse installiert. Die verlinkten Anweisungen haben einwandfrei funktioniert.

PyDev konfigurieren

Die obige Frage gibt einen Screenshot einer Windows-Konfiguration, während dieser Link aus einem ESRI-Blog mehr Informationen für Unix-Systeme enthält, obwohl er aus dem Jahr 2008 stammt.

Führen Sie ein Testskript aus

Ich habe ein Skript gestartet, an dem ich gearbeitet habe, und es hat funktioniert. Es scheint einige Unterschiede in der Ausführung von Code auf diese Weise zu geben, was den Zugriff auf Shapefiles und den Arbeitsbereich usw. angeht. Weitere Informationen sind erforderlich. Hier erfahren Sie mehr.

mindless.panda
quelle
Ich gebe zu, dass dies beinahe eher eine Python-Frage zu sein scheint und auch meine Unkenntnis der Python-Umgebung verrät, aber hoffentlich hilft die Antwort anderen, die neu in ArcGis + Python sind!
mindless.panda
Ich denke, mit IDLE wäre es einfacher gewesen. PyDev ist ein bisschen übertrieben in dieser Situation, denke ich. Möglicherweise möchten Sie auch einige Modelle in Model Builder erstellen und als PY-Dateien exportieren. Auf diese Weise hätten Sie ein Gefühl für den Python-Code.
RK
Dies wiederholt einfach das, was ich gesagt habe! Es ist das Beste, nicht wahr? Der Schlüssel dazu ist, dass Sie Objekte und Klassen erstellen können, die auf andere Weise nicht unterstützt werden. Sie können sich wirklich auf das Erstellen von Cracking-Code konzentrieren, der auf dem Server bereitgestellt werden kann. Viel Glück!
Behaarte
2
In nur einer Antwort wird die Eclipse + PyDev-Lösung erwähnt. Gibt es einen Grund, warum Sie nicht dafür gestimmt haben?
Whuber
Keiner. Ich habe den Eclipse-Vorschlag angenommen, da ich diesen Weg gewählt und bevorzugt habe. Ich habe nur meine eigene Frage beantwortet, um den Einrichtungsprozess zu dokumentieren. Aus irgendeinem Grund sollte meine Antwort in die Frage eingearbeitet werden? Vielleicht sollte das ein CW sein?
mindless.panda

Antworten:

11

Die beste Möglichkeit, Python zu verwenden, ist die Verwendung von Eclipse mit PyDev. Es ist eine gute IDE für die Entwicklung mit und ermöglicht Inline-Debugging, nicht Commend-Line-Debugging, und es hat mir ermöglicht, sehr professionelle Back-End-Datenverwaltungsanwendungen in großem Maßstab zu erstellen.

IDLE eignet sich meiner Meinung nach immer nur zum Testen von Scriplets und nicht zum Entwerfen komplexer objektbasierter Lösungen.

Es ist auch unglaublich einfach einzurichten.

Behaart
quelle
Gibt es viel damit zu tun, Eclipse + PyDev mit ArcGIS-Funktionalität zum Laufen zu bringen? Andere Antworten scheinen auf Besonderheiten bei der Verwendung des nicht auf Arc installierten Python hinzuweisen.
mindless.panda
Vergewissern Sie sich einfach, dass Sie arcgis desktop installiert haben, und richten Sie Eclipse für die Arbeit mit PyDev ein. Es dauerte 5 Minuten, um es einzurichten, und dann müssen Sie in Ihrem Skript nur noch auf arcpy verweisen. Im Ernst, ich habe keinen einfacheren und besseren Weg gesehen, es zu tun.
Behaarte
15

Ich habe gerade angefangen , mich mit Python und Arcpy auseinanderzusetzen, und ich fand PyScripter wirklich nützlich. Es ist eine ausgewachsene Python-IDE

mapoholisch
quelle
2
Die beste IDE, die ich bisher verwendet habe, ist PyScripter und es ist kostenlos!
Hornbydd
2
PyScripter ist wirklich toll. Hervorragende Code-Vervollständigung, Hervorhebung der Syntax, Suchen und Ersetzen, Registerkarten zum Anzeigen mehrerer PY-Skripte. Meiner Meinung nach viel nützlicher als IDLE.
RyanDalton
15

Wenn ich die Frage verstehe, möchten Sie Ihre Skripts unabhängig von der ArcMap-Sitzung ausführen. Absolut machbar. Speichern Sie Ihren Code in einer Python-Datei (.py). Für die Bearbeitung können Sie IDLE oder einen beliebigen Texteditor (auch Notepad) verwenden. Manchmal ist es am Anfang einfacher, einen Texteditor zu verwenden, damit Sie sich auf das Erlernen des Codes und nicht auf die IDE konzentrieren können. Vergewissern Sie sich, dass Ihre PATH-Umgebungsvariablen richtig eingerichtet sind, damit sie Ihr Python-Installationsverzeichnis enthalten, etwa:

C:\Python26\ArcGIS10.0\Lib\site-packages\;C:\Python26\ArcGIS10.0;C:\Python26\ArcGIS10.0\Scripts

Dann müssen Sie lediglich eine Eingabeaufforderung öffnen (Start> Ausführen> 'cmd' [ohne Anführungszeichen] eingeben) und Folgendes eingeben:

python c:\path\to\python\script.py

Dies setzt voraus, dass Sie alle Ihre Datenpfade im Skript fest codiert haben.

Das sind die Grundlagen. Es gibt natürlich viel mehr, als Eingabeparameter zu verwenden.

Chad Cooper
quelle
3
nur ein Kommentar zu IDLE oder einem Standard-Texteditor. Ich persönlich finde, dass PythonWin eine viel einfachere Arbeitsweise ist, da es über bessere Debugging-Fähigkeiten verfügt - entscheidend beim Lernen. Siehe Anweisungen zur Installation PythonWin mit ArcGIS 10. Sie müssen tun , um sicherzustellen , dass Sie die Version von PythonWin aus der ArcGIS - DVD installieren, oder es kann die Python - Installation brechen.
Stephen Lead
6

Bei der Installation von ArcGIS wird eine eigene Version von Python installiert (dh Sie müssen die Abhängigkeiten nicht importieren). Achten Sie darauf, diese zu verwenden.

Ich verwende Python CLI als Taschenrechner und starte gespeicherte Skripte.

Python als Taschenrechner ist großartig, da Sie Variablen definieren können. Ich habe diesen Tipp aus den Python-Tutorials http://docs.python.org/

Ich habe eine Verknüpfung zur CLI über die Eingabeaufforderung in meiner Taskleiste% windir% \ system32 \ cmd.exe / k "C: \ Python26 \ ArcGIS10.0 \ python.exe"

Ich habe geplante Windows-Aufgaben verwendet, um einige Wartungsarbeiten über Skripte durchzuführen, die ich aus Model Builder exportiert und dann in einige Änderungen an Python-Integrierten gehackt habe, z. B. das Anwenden von Datumsangaben auf Dateinamen für Sicherungen.

woodwa
quelle
5

Ich glaube, dass eine IDE für Python mit der ArcGIS-10-Installation geliefert wird. Es heißt IDLE und ist ein einfaches, aber effektives Tool für die Schnittstelle zu ArcPy, ohne eine Instanz von ArcMap selbst zu öffnen. Sie sollten es im Startmenü im Verzeichnis "Python 2.6" Ihrer ArcGIS-Installation finden. Denken Sie nur daran, import arcpybevor Sie etwas spezielles für das Paket ausführen! Alle Skriptbeispiele, die Sie in der ArcPy-Referenz für eigenständige Skripts sehen, funktionieren in der IDLE-Oberfläche.

Nathanus
quelle