Ich habe ein kleines (und relativ beliebtes) Modul erstellt, das auf Ihrem PC nach ArcGIS sucht. Sobald es gefunden wurde, werden die richtigen Pfade zur Umgebung hinzugefügt, sodass Sie arcpy importieren können. Die Verwendung geht so:
try:
import archook #The module which locates arcgis
archook.get_arcpy()
import arcpy
except ImportError:
# do whatever you do if arcpy isnt there.
Das Modul wird hier auf github gehostet:
https://github.com/JamesRamm/archook
Es ist sehr einfach und ich bin sicher, dass es robuster gemacht werden kann, aber es macht den Job. Es ist auf pypi verfügbar:pip install archook
Es hat ein paar Vorteile gegenüber der eher "manuellen" Originalmethode (siehe unten):
- Sie müssen nicht jede Python-Umgebung einzeln konfigurieren ... importieren Sie einfach das Modul und los geht's
- Es werden keine Registrierungsschlüssel oder permanenten Umgebungsvariablen bearbeitet / erstellt, sodass keine Möglichkeit besteht, vorhandene Python- / Arcgis-Konfigurationen durcheinander zu bringen.
- Sie müssen nichts über Pfade zu verschiedenen Ordnern / Dateien wissen oder auch nicht darüber, welche Version von arcgis Sie installiert haben. Das Modul findet alles für Sie.
- Keine Administratorauthentifizierung erforderlich
- Es ist nicht spezifisch für Anaconda - es funktioniert mit jeder Python-Installation
Ich habe die ursprüngliche Antwort unten gelassen, aber diese Lösung ist (IMO) 100% besser.
2014 antworten
Okay, diese Antwort funktioniert für die Anaconda 64-Bit-Python-Distribution mit ArcGIS 10.1 64-Bit unter Windows 7 / Windows Server. Einige (oder alle) der unten aufgeführten Tipps gelten möglicherweise für alle anderen Windows-Distributionen von Python. Installieren Sie zuerst anaconda. Es sollte in das Verzeichnis C: \ Anaconda gehen. Aktivieren Sie das Kontrollkästchen "Python als Systemstandard festlegen". Möglicherweise wird eine Warnung ausgegeben, dass ein anderer Python installiert ist, aber fahren Sie fort. Dann:
Setup-Pfade und Umgebungsvariablen
Als Erstes müssen Sie die Datei DTBGGP64.pth aus C: \ Python27 \ ArcGISx6410.1 \ Lib \ site-packages in das neue Distributionsverzeichnis ( C: \ Anaconda ) kopieren . Die Benennung ist beliebig, muss jedoch die Erweiterung .pth aufweisen. Dadurch können Sie ArcPy importieren, wenn Sie die neue Distribution verwenden.
Hinweis: Der korrekte Speicherort der Datei DTBGGP64.pth sollte im Site-Packages-Verzeichnis liegen (z. B. C: \ Anaconda \ Libs \ Site-Packages ). Ich habe festgestellt, dass es mit einigen älteren Versionen von Anaconda funktioniert, wenn es sich im obersten Verzeichnis befindet.
Als nächstes müssen die Umgebungsvariablen überprüft werden: In der Systemvariablen Pathsollte der vorhandene Pfad zum Python-Verzeichnis durch den neuen Pfad ersetzt werden. (zB C: \ Anaconda; C: \ Anaconda \ Scripts; ) Dies teilt Windows mit, wo sich das Standard-Python-Verzeichnis befindet. Stellen Sie sicher, dass auch die Benutzervariable PYTHONPATH korrekt ist. Dies sollte auf Bibliotheken verweisen, die Sie verwenden möchten und die nicht durch .pth- Dateien beschrieben oder in Site-Paketen installiert sind . Dies können beispielsweise Ihre eigenen Entwicklungspakete oder Pakete wie mapnik sein , die einen anderen Installationsort haben.
Überprüfen Sie die Registrierungseinstellungen
Auf einigen Computern kann das oben Genannte ausreichen, um sicherzustellen, dass Sie Arcpy aus dem neuen Python verwenden können und dass Python in ArcGIS verwendet werden kann. Auf anderen Computern müssen Sie möglicherweise die Registrierungsschlüssel überprüfen. Die folgenden Registrierungsschlüssel haben Python-Einstellungen:
HKEY_LOCAL_MACHINE \ SOFTWARE \ Python \ PythonCore \ 2.7 \ PythonPath
Es sollte einen Schlüssel geben und sein Wert sollte C: \ Anaconda \ Lib; C: \ Anaconda \ DLLs sein
(oder die entsprechenden Ordner für Ihre Python-Installation)
HKEY_LOCAL_MACHINE \ SOFTWARE \ Python \ PythonCore \ 2.7 \ InstallPath
Der Schlüssel sollte C: \ Anaconda sein
Möglicherweise sind andere Python-Versionen installiert. Ändern Sie in diesem Fall die Versionsnummer in den oben genannten Pfaden
HKEY_CLASSES_ROOT \ Python.CompiledFile \ DefaultIcon
Dies ist der Speicherort der ICO-Datei, die für PYC-Dateien verwendet werden soll
HKEY_CLASSES_ROOT \ Python.CompiledFile \ shell \ open \ command
Dies ist der Befehl, der beim Öffnen einer .pyc-Datei über die Shell ausgegeben wird. Sie sollten den python.exe
Pfad zum Speicherort Ihrer gewünschten Python-Version ändern
HKEY_CLASSES_ROOT \ Python.File
Die hier angegebenen Schlüssel stimmen mit denen für Python.CompiledFile überein, gelten jedoch für eine PY-Datei. Nehmen Sie erneut die relevanten Änderungen vor. Möglicherweise ist ein zusätzlicher Schlüssel für "Mit IDLE bearbeiten" oder "Mit Pythonwin bearbeiten" vorhanden. Nehmen Sie die relevanten Änderungen erneut vor, damit die Pfade in diesen Schlüsseln auf Ihre gewünschte Python-Version verweisen.
HKEY_CLASSES_ROOT \ Python.NoConFile
Diese sind die gleichen wie für Python.File, sollten jedoch pythonw.exe
gegebenenfalls auf das Programm verweisen .
HKEY_LOCAL_MACHINE \ SOFTWARE \ ESRI \ Python10.1
Der Schlüssel PythonDir verweist auf die Python-Installation, die in ArcMap usw. verwendet werden soll. Möglicherweise möchten Sie, dass dies als von ESRI installierte Python-Installation beibehalten wird, oder auf Ihre neue Installation verweisen. Es können weitere Änderungen erforderlich , wenn Sie ArcMap auf die neue Python - Installation zeigen. Es kann durch die neue Distribution installiert mit den Versionen von Paketen (zB numpy) Fragen. Ich habe keine angetroffen.
Für den Großteil meiner Arbeit ist dies irrelevant, da ich normalerweise Python alleine verwenden möchte und gelegentlich Zugriff auf Arcpy habe. Ich möchte selten Python aus arcmap heraus verwenden. Daher habe ich diesen letzten Schritt nur wenig getestet, aber es scheint für alles zu funktionieren, was ich bisher versucht habe.
Ich stelle mir vor, dass der Prozess für die Installation von Python (x, y) usw. ähnlich wäre.
Weitere Hinweise
Der Inhalt der .pth-Datei ist eine Liste von Pfaden, die auf die folgenden Ordner in Ihrer ArcGIS-Installation verweisen: bin64, arcpy, ArcToolbox \ Scripts. Meine .pth-Datei enthält beispielsweise Folgendes:
C:\Program Files (x86)\ArcGIS\Desktop10.2\bin64
C:\Program Files (x86)\ArcGIS\Desktop10.2\arcpy
C:\Program Files (x86)\ArcGIS\Desktop10.2\ArcToolbox\Scripts
Meine Lösung besteht darin, ein Startskript einzurichten, das den Pfad basierend auf der verwendeten Python-Umgebung festlegt. Diese Methode hat den (großen) Vorteil, dass Sie keinen Administratorzugriff benötigen, um .pth-Dateien in Python-Installationen zu schreiben. Dieses Skript ist so eingerichtet, dass es sowohl 32-Bit- als auch 64-Bit-Anaconda und ArcGIS / arcpy verwendet.
quelle
Falls dies mit ArcGIS Pro versucht wird (dh mit Python 3 anstelle von Python 2):
Ich benutze Spyder im Anaconda-Paket. Um dies zu erreichen, navigierte ich in Spyder zu Tools> Python Interpreter und verwies Spyder auf die Datei propy.bat, die sich derzeit unter C: \ Programme \ ArcGIS \ Pro \ bin \ Python \ Scripts \ propy.bat befindet.
Dadurch wird die richtige Python-Version in Spyder aktiviert und Sie können Arcpy importieren.
quelle
Ich verwende den folgenden Code, um eine separate virtuelle Umgebung einzurichten, die arcpy und dessen Abhängigkeiten enthält:
quelle