Wie kann ich von Enthought Canopy auf Esri ArcPy-Module zugreifen?

10

Ich habe ArcGIS 10.1 auf meinem Windows-System ausgeführt und auch die neue 32-Bit-Python-Distribution Canopy Express Enthought installiert.

Ist es möglich, die Esri ArcPy-Module von Canopy zu laden und zu verwenden?

SharonB
quelle
Ich habe die Lösung der ersten Antwort verwendet und perfekt funktioniert, aber ich brauche Canopy x64. Gibt es eine Möglichkeit, diese Bibliothek bei Canopy x64 zu importieren?
Μανώλης Παναγιωτάκης

Antworten:

20

Es gibt einen einfachen Weg, bei dem Sie nicht mit Ihrem Systempfad oder PYTHONPATH herumspielen müssen.

Die Enthought Python-Distributionen, einschließlich Canopy x32, sind eigenständig und benötigen nichts in der Registrierung oder in den Umgebungsvariablen. So können sie gut mit anderen Python-Distributionen wie der mit ArcGIS 10.1 gelieferten spielen.

So greifen Sie über Enthought Canopy auf ArcGIS 10.1-Python-Module zu : Erstellen Sie im Canopy-Benutzerverzeichnis eine "Pfad" -Datei, die auf die ArcGIS 10.1-Python-Module verweist. Auf meinem System habe ich eine Textdatei arcpy.pthmit den folgenden 4 Zeilen erstellt:

# .pth file for arcpy
C:\ArcGIS\Desktop10.1\bin
C:\ArcGIS\Desktop10.1\arcpy
C:\ArcGIS\Desktop10.1\ArcToolbox\Scripts

und arcpy.pthin das Verzeichnis Canopy User site-packages legen :

C:\Users\rsignell\AppData\Local\Enthought\Canopy32\User\lib\site-packages

So greifen Sie über ArcGIS 10.1 auf Enthought Canopy-Module zu : Erstellen Sie eine "Pfad" -Datei im Ordner "Arc Site-Pakete", die auf die Canopy-Python-Module verweist. Auf meinem System habe ich eine Textdatei epd.pthmit den folgenden drei Zeilen erstellt:

# .pth file for EPD Canopy
C:\Users\rsignell\AppData\Local\Enthought\Canopy32\User\Lib\site-packages
C:\Users\rsignell\AppData\Local\Enthought\Canopy32\System\Lib\site-packages

und dann epd.pthin den Arc-Site-Package-Ordner legen :

C:\Python27\ArcGIS10.1\Lib\site-packages

Das war alles was ich tun musste!

-Reich

PS Dies funktioniert, weil Enthought Canopy 1.0 und ArcGIS10.1 dieselbe Version von Python (2.7) und Numpy (1.6.1) haben. Ich hoffe, wir können diese Kompatibilität weiterhin haben!

Update: Ich habe dies gerade mit Canopy 1.0.3 versucht, das Numpy 1.7.1 verwendet, und es funktioniert immer noch, obwohl ArcGIS 10.1 auf Numpy 1.6.1 ist. Hurra! Hurra!

Rich Signell
quelle
3
Einige Hinweise: 1. Stellen Sie sicher, dass Sie EPD / Canopy x32 für die Verwendung mit ArCGIS Desktop installiert haben. 2. pth-Dateien werden in alphabetischer Reihenfolge geladen. Um Konflikte zu vermeiden, habe ich folgende Dateien benannt: "zzArcGIS.pth" (Ordner "Canopy-Site-Pakete") und "zzEPD.pth" (Ordner "ArcGIS-Site-Pakete"). 3. Wenn Sie ArcGIS Desktop x64 Background GP oder ArcGIS Server (der Python x64 verwendet) verwenden, müssen Sie 64-Bit-EPD / Canopy installieren und .pth-Dateien hinzufügen, die auf die 64-Bit-Ordner EPD und ArcGIS Python-Site-Pakete verweisen .
Curtis Price
3

Ja ist es. Hier ist ein Auszug aus einer internen Installationsanleitung, die nur verwendet wurde, um dasselbe auf meinem Computer zu tun (bitte stellen Sie sicher, dass diese für Ihren bestimmten Computer gelten):


Konfigurieren Sie die Umgebung für EPD

  1. Fügen Sie Ihren Benutzervariablen einen neuen Pfad hinzu (stellen Sie dem Pfad den epd voran):

    (Bearbeiten Sie die folgenden Pfade entsprechend der von Ihnen verwendeten EPD- oder ArcGIS-Version.) PATH=C:\Python27_epd32;C:\Python27_epd32\Scripts;%PATH%

  2. Wenn ArcGIS installiert ist, legen Sie die Umgebungsvariable PYTHONPATH so fest, dass
    ArcGIS EPD-Module und EPD ArcPy importieren kann:

    PYTHONPATH= C:\Python27_epd32\lib\site-packages; C:\ArcGIS\Desktop10.1\bin; C:\ArcGIS\Desktop10.1\arcpy; C:\ArcGIS\Desktop10.1\ArcToolbox\Scripts

Wenn Sie Probleme mit ArcGIS haben, die mit EPD in Konflikt stehen, können Sie EPD einfach aus der ArcGIS-Umgebung entfernen, indem Sie die Verweise auf EPD im PYTHONPATH entfernen.


Haftungsausschluss! Während die folgenden Schritte in der Vergangenheit für mich funktioniert haben, bin ich keine sehr DOS-versierte Person und ich würde mich besser fühlen, wenn Sie jemanden in Ihrer IT-Abteilung konsultieren, um sicherzustellen, dass ich keine schlechten Ratschläge verteile. Lesen Sie weiter ...

Das Hinzufügen von Pfaden zu Ihren Umgebungsvariablen ist über die DOS-Eingabeaufforderung (Alle Programme> Zubehör> Eingabeaufforderung) recht einfach. Mit dem Befehl können Sie setxIhre PATHund PYTHONPATHUmgebungsvariablen dauerhaft ändern .

Geben Sie an der Eingabeaufforderung " echo %PATH%" ein. Es wird die Zeichenfolge ausgedruckt, die die PATHVariable ist. Es ist im Wesentlichen nur eine lange Zeichenfolge. Versuchen Sie es jetzt mit der PYTHONPATHVariablen, um zu sehen, was darin enthalten ist. Sie werden feststellen, dass jeder Pfad in diesen Variablen durch ein Semikolon ( ;) getrennt ist. Wenn wir diesen Variablen neue Pfade hinzufügen, müssen wir diese einschließen.

Geben Sie hier die Bildbeschreibung ein

Im Wesentlichen teilen Sie dem Computer mit, dass Ihre neuen Variablen PATHund PYTHONPATHVariablen einer neuen Zeichenfolge (Pfad (n)) (wie C:\Python27_epd32\lib\site-packages;C:\ArcGIS\Desktop10.1\bin;) sowie dem, was bereits in der Variablen gespeichert ist, entsprechen sollen.

Der Befehl, den Sie zum Festlegen Ihrer PATHVariablen ausführen, lautet: setx PATH=C:\Python27_epd32;C:\Python27_epd32\Scripts;%PATH%(Stellen Sie sicher, dass diese Pfade für Ihr System gelten.)

Geben Sie hier die Bildbeschreibung ein

Der Befehl, den Sie zum Festlegen Ihrer PYTHONPATHVariablen ausführen, lautet: setx PYTHONPATH=C:\Python27_epd32\lib\site-packages;C:\ArcGIS\Desktop10.1\bin;C:\ArcGIS\Desktop10.1\arcpy;C:\ArcGIS\Desktop10.1\ArcToolbox\Scripts;%PYTHONPATH%(Stellen Sie sicher, dass diese Pfade für Ihr System gelten.)

HINWEIS: Stellen Sie sicher, dass Sie am Ende der jeweiligen Befehle " %PATH%" und " %PYTHONPATH%" hinzufügen . Wenn Sie dies nicht tun, überschreiben Sie diese Variablen nur mit den neuen Pfaden und verlieren den aktuellen Inhalt.

Jason
quelle
Danke, Jason! Ich benötige jedoch etwas mehr Details dazu - wie bearbeite ich Benutzervariablen?
SharonB
An der DOS-Eingabeaufforderung möchten Sie den SETX-Befehl (2. Antwort unter stackoverflow.com/questions/8358265/… ) verwenden, um den Pfaden zu Ihren PATH- und PYTHONPATH-Variablen dauerhaft voranzustellen. Sie können dies auch über einige Verwaltungstools tun, wenn ich mich richtig erinnere, aber ich habe auf meinem Arbeitscomputer keine Berechtigung, sie zu verwenden, sodass ich normalerweise ein DOS-Fenster verwende.
Jason
Nochmals vielen Dank ... als Python-Neuling, der hauptsächlich in IDLE arbeitet (hat die DOS-Eingabeaufforderung nie berührt), weiß ich nicht, wie ich die neuen Umgebungsvariablen PATH und PYTHONPATH hinzufügen soll. Vielleicht Screenshots und / oder eine Option, um dies über eine GUI (nicht DOS) zu tun?
SharonB
Whoa. Vielen Dank. Das ist beeindruckend. Sehr geschätzt, ich werde Sie wissen lassen, wie es geht.
SharonB
Hehe, es ist ein einfacher Prozess, sieht aber wegen all der Pfade kompliziert aus! Ich hoffe, all deine Arbeit kommt zusammen!
Jason