Wird ArcPy mit Anaconda zusammenarbeiten?

23

Ich versuche , die Schritt- für -Schritt - Anleitungen in der Antwort auf „zu folgen , wie zu trennen Python - Installation mit ArcGIS “ , sondern den Pfad Datei nicht finden kann, DTBGGP64.pthin C:\Python27\ArcGIS10.2\Lib\site-packages.

Hat jemand ein ähnliches Problem konfrontiert?

Ich frage mich, ob es eine Problemumgehung gibt, indem ich eine Pfaddatei hinzufüge, die Anaconda mitteilt, wo arcpy installiert ist. Ich habe versucht, eine .pth-Datei mit dem folgenden Text zu erstellen:

# .pth file for arcpy

C:\Program Files (x86)\ArcGIS\Desktop10.2\bin 
C:\Program Files (x86)\ArcGIS\Desktop10.2\arcpy
C:\Program Files (x86)\ArcGIS\Desktop10.2\Scripts

und speicherte es in C:\Anaconda\Lib\site-packages(das heißt, wenn dies in der Tat, wo alle Pakete gespeichert sind), aber ich bekomme den folgenden Fehler:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Program Files (x86)\ArcGIS\Desktop10.2\arcpy\arcpy\__init__.py", line 21, in <module>
    from arcpy.geoprocessing import gp
  File "C:\Program Files (x86)\ArcGIS\Desktop10.2\arcpy\arcpy\geoprocessing\__init__.py", line 14, in <module>
    from _base import *
  File "C:\Program Files (x86)\ArcGIS\Desktop10.2\arcpy\arcpy\geoprocessing\_base.py", line 14, in <module>
    import arcgisscripting
ImportError: DLL load failed: %1 is not a valid Win32 application.

Ich lasse conda 3.7-py27 auf einer Windows 7 (64-Bit) -Plattform laufen. Anaconda ist installiert in C:\Anacondaund ArcMap ist installiert in C:\ArcGIS\Desktop10.2. Gibt es eine alternative Lösung, um arcpy mit Anaconda zusammenarbeiten zu lassen? Ich möchte nur in der Lage sein, meine Skripte von Powershell aus auszuführen.

user26750
quelle
nur um sicher zu gehen - wenn Sie 'python' an einer cmd-Eingabeaufforderung eingeben - welche Version / Installation wird wiedergegeben? (zB Arcgis oder Anakonda?) - Hoppla, ich habe gerade gesehen, dass dies etwas veraltet ist. prob mittlerweile gelöst.
Fluidmotion
Ich habe von einem Entwickler bei Esri UC gehört, dass Anacondas in ArcGIS 10.5 integriert wird. Ich würde empfehlen, nur die Module zu installieren, die Sie benötigen, sonst könnte es chaotisch werden.
Dgrubman
Es sieht so aus ^ ist der Fall aus ArcGIS 10.5 Systemanforderungen
WxCZar 24.10.17

Antworten:

13

Sie verwenden eine 64-Bit-Version von Python in Ihrer Anaconda-Installation und ArcMaps Python ist 32-Bit. Sie müssen eine 64-Bit-Version von ArcGIS installieren (entweder 64-Bit-Hintergrund-Geoverarbeitung oder ArcGIS for Server) und stattdessen darauf verweisen, oder Sie müssen stattdessen eine 32-Bit-Anaconda-Instanz installieren und es erneut versuchen. Besuchen Sie die Downloadseite und rufen Sie das 32-Bit-Installationsprogramm auf.

Jason Scheirer
quelle
33

In diesem Lernprogramm erfahren Sie, wie Sie die Conda-Umgebung für die Verwendung mit ArcGIS 10.4 und ArcGIS Pro 1.3 einrichten.

Workflow zum Einrichten von Anaconda mit ArcGIS 10.4

  • Installieren Sie Anaconda, ohne die Windows-Umgebung (Pfade, Registrierung) zu verschmutzen, um Esris Python-Stack zu beschädigen
  • Konfigurieren Sie Anaconda mit den gewünschten Add-Ons und
  • Konfigurieren Sie ArcGIS Python so, dass es den entsprechenden Anaconda-Inhalt kennt.

1) Installieren Sie Anaconda für alle Benutzer

  1. Gehen Sie zu http://continuum.io/downloads
  2. Laden Sie die 32-Bit- Version von Anaconda (Python 2.7) herunter
  3. In den Installationsdialogen:
    • Wählen Sie Installation für alle Benutzer
    • Standardmäßig in einem Ordner installieren (C: \ Anaconda2)
    • WICHTIG : Um zu vermeiden, dass ArcGIS (oder eine andere Software) beschädigt wird, deaktivieren Sie die Kontrollkästchen (a), machen Sie Anaconda zum Standard-Python, und (b) fügen Sie Anacondas Python zum PATH hinzu.
  4. Gehen Sie zu Start> Alle Programme (Apps)> Anaconda2 (32-Bit)> Anaconda Prompt. Rechtsklick, als Administrator ausführen

2) Konfigurieren Sie eine Anaconda-Umgebung für die Verwendung mit ArcGIS

  1. Finden Sie die Versionen von numpy und matplotlib, die ArcGIS verwendet.
Öffnen Sie ArcMap und das zugehörige Python-Fenster und geben Sie die folgenden Befehle ein:

    • >>> sys, numpy, matplotlib importieren
    • >>> print (sys.version, numpy .__ version__, matplotlib .__ version__)
    • ('2.7.10 (Standardeinstellung, 23. Mai 2015, 09:40:32) [MSC v.1500 32 Bit (Intel)]', '1.9.2', '1.4.3')
  1. Erstellen Sie eine Anaconda-Umgebung, die mit ArcGIS kompatibel ist
    • Rufen Sie die Anaconda-Eingabeaufforderung auf (Start> Alle Programme (Apps)> Anaconda2 (32-Bit), wählen Sie " Anaconda-Eingabeaufforderung "), klicken Sie mit der rechten Maustaste, und klicken Sie auf Als Administrator ausführen .
    • Typ (abhängig von der ArcGIS-Version verwende ich hier ArcGIS 10.4 als Beispiel):
    • "conda create -n arc104 python = 2.7.10 numpy = 1.9.2 matplotlib = 1.4.3 pyparsing xlrd xlwt pandas scipy ipython ipython-notebook ipython-qtconsole"
    • Geben Sie y ein, um fortzufahren.
    • Der Befehl conda von Anaconda richtet dann ein Unterverzeichnis für die Umgebung ein, beispielsweise "C: \ Anaconda2 \ envs \ arc104", in dem die heruntergeladenen Pakete installiert werden.
  2. Testen Sie die virtuelle Umgebung
    • Geben Sie an der Anaconda-Eingabeaufforderung Folgendes ein : activate arc104
    • Typ: Eigentumswohnungsliste . Sie können die Liste der installierten Pakete sehen.
  3. Fügen Sie weitere Pakete hinzu
    • Sie können mit conda install weitere Pakete hinzufügen , aber stellen Sie sicher, dass Sie Versionsnummern für diese angeben, die die Version von Python oder Numpy in der Umgebung nicht ändern (andernfalls kann ArcGIS diese Umgebung nicht mehr verwenden).
    • Fügen wir das Modul Pysal (Python Spatial Analysis Library ) hinzu.
    • Tippen Sie den folgenden Befehl an der Anaconda-Eingabeaufforderung ein : "conda install -n arc104 python = 2.7.10 numpy = 1.9.2 matplotlib = 1.4.3 pysal"

3) Konfigurieren Sie ArcGIS so, dass Anaconda angezeigt wird und umgekehrt

  1. Anaconda Python zu ArcPy
    • Kopieren Sie die Datei Desktop10.4.pth in den Site- Package- Ordner der Anaconda-Umgebung:
    • Von: C: \ Python27 \ ArcGIS10.4 \ Lib \ site-packages \ Desktop10.4.pth
    • An: C: \ Anaconda2 \ envs \ arc104 \ Lib \ site-packages \ Desktop10.4.pth
  2. Arcpy zu Anaconda Python
    • Erstellen Sie eine zconda.pth- Datei (Pfad) mit dem Inhalt "C: \ Anaconda \ envs \ arc104 \ lib \ site-packages".
    • Kopieren Sie dann zconda.pth nach C: \ Python27 \ ArcGIS10.4 \ Lib \ site-packages
  3. Testen in ArcMap
    • Starten Sie als normaler Benutzer ArcMap und öffnen Sie das Python-Fenster
    • Typ "import pysal"
    • Geben Sie "pysal" ein. Ein Popup-Menü mit einer Liste der von pysal bereitgestellten Funktionen ist ein gutes Zeichen dafür, dass die Installation erfolgreich war.
  4. Testen in PyCharm
    • Starten Sie PyCharm. Wählen Sie unter "Datei \ Einstellungen ..." die Option "Projekt" und dann "Projektinterpreter"
    • Ignorieren Sie die Dropdown-Liste für Project Interpreter und klicken Sie auf die Schaltfläche "Zahn", um "Lokal hinzufügen". Wählen Sie im Dateibrowser C: \ Anaconda2 \ envs \ arc104 \ python.exe aus
    • Um Ihr Skript auszuführen, klicken Sie im Projektfenster mit der rechten Maustaste darauf und wählen Sie entweder Ausführen oder Debuggen
    • Starten Sie PyCharm neu, damit die Python-Konsole die arc104-Umgebung verwendet.

Workflow zum Einrichten von Anaconda mit ArcGIS Pro 1.3

1) Erstellen Sie eine Anaconda-Umgebung, die mit ArcGIS Pro kompatibel ist

  • Kopieren Sie den Ordner arcgispro-py3 aus C: \ Programme \ ArcGIS \ Pro \ bin \ Python \ envs und fügen Sie ihn in C: \ Anaconda2 \ envs ein
  • Benennen Sie den kopierten Ordner arcgispro-py3 in C: \ Anaconda2 \ envs in arcpro um

2) Testen Sie die virtuelle Umgebung

  • Geben Sie an der Anaconda-Eingabeaufforderung Folgendes ein : activate arcpro
  • Typ: Eigentumswohnungsliste . Sie können die Liste der installierten Pakete sehen

3) Fügen Sie weitere Pakete hinzu

  • Fügen wir das Modul Pysal (Python Spatial Analysis Library ) hinzu.
  • Tippen Sie den folgenden Befehl an der Anaconda-Eingabeaufforderung ein : "conda install pysal"

4) Konfigurieren Sie ArcGIS so, dass Anaconda angezeigt wird und umgekehrt

  • Anaconda Python zu ArcPy
    • Bearbeiten Sie die Datei ArcGISPro.pth (Pfad) unter "C: \ Anaconda2 \ envs \ arcpro \ lib \ site-packages".
    • Ändern Sie den relativen ArcPy- Pfad in C: \ Programme \ ArcGIS \ Pro \ Resources \ ArcPy
    • Ändern Sie den relativen ArcToolBox- Pfad in C: \ Programme \ ArcGIS \ Pro \ Resources \ ArcToolBox
  • Arcpy zu Anaconda Python
    • Erstellen Sie eine zconda.pth- Datei (Pfad) mit dem Inhalt "C: \ Anaconda2 \ envs \ arcpro \ lib \ site-packages".
    • Kopieren Sie dann zconda.pth nach C: \ Programme \ ArcGIS \ Pro \ bin \ Python \ envs \ arcgispro-py3 \ lib \ site-packages
  • Testen in ArcGIS Pro
    • Starten Sie ArcGIS Pro und öffnen Sie das Python-Fenster
    • Typ "import pysal"
    • Geben Sie "pysal" ein. Ein Popup-Menü mit einer Liste der von pysal bereitgestellten Funktionen ist ein gutes Zeichen dafür, dass die Installation erfolgreich war.
  •  Testen in PyCharm
    • Starten Sie PyCharm. Wählen Sie unter "Datei \ Einstellungen ..." die Option "Projekt" und dann "Projektinterpreter"
    • Ignorieren Sie die Dropdown-Liste für Project Interpreter und klicken Sie auf die Schaltfläche "Zahn", um "Lokal hinzufügen". Wählen Sie im Dateibrowser C: \ Anaconda2 \ envs \ arcpro \ python.exe aus
    • Um Ihr Skript auszuführen, klicken Sie im Projektfenster mit der rechten Maustaste darauf und wählen Sie entweder Ausführen oder Debuggen
    • Starten Sie PyCharm neu, damit die Python-Konsole die arcpro-Umgebung verwendet.

Verweise

  1. https://goo.gl/pOyLA9
Qiusheng Wu
quelle
Dies funktioniert alles sehr gut, Anaconda-Pakete sind in ArcGIS enthalten und umgekehrt, aber ich habe noch ein Problem. Wenn ich versuche, arcpy und dann arcpy.Describe in einer von RDBMS (Oracle) stammenden Feature-Class in Anaconda zu importieren, erhalte ich IOError: ... ist nicht vorhanden. Funktioniert in einer Dateiverzeichnisdatenbank-Feature-Class einwandfrei, stellt jedoch anscheinend keine Verbindung zu Oracle her (z. B. arcpy.Describe (r'C: \ temp \ password_saved_sde_file.sde \ EDGIS.ElectricDataset \ EDGIS.Anchor ').
Phil Penn
7

Um dies zu beheben, navigieren Sie zum Ordner python27 \ Lib \ site-packages. Meins befand sich unter "C: \ Python27 \ ArcGIS10.1 \ Lib \ site-packages" und suchen Sie die Datei Desktop10.1.pth.

Auf meinem System wurde das Problem durch einfaches Kopieren der Datei Desktop10.1.pth in "C: \ AppData \ Local \ Continuum \ Anaconda \ Lib \ site-packages" behoben.

Wenn Sie Anaconda 64-Bit ausführen, wird beim Versuch, arcpy zu importieren, eine andere Fehlermeldung angezeigt, da ArcGIS 32-Bit ausführt. Daher müssen Sie sicherstellen, dass Anaconda 32-Bit anstelle von 64-Bit installiert ist, damit die Ergebnisse mit ArcGIS übereinstimmen. Sobald die Datei kopiert wurde und Sie Anaconda 32-Bit haben, sollte der Import von arcpy funktionieren.

WxCZar
quelle
3

Wenn Sie Arc vor Anaconda installiert haben, werden Ihre standardmäßigen IDLE-, Python-Fenster- (in Arc) und Python-Konsolen immer von Ihren in Arc installierten Modulen bezogen, dh C:\Python27\ArcGIS <version>\Lib(und / oder) Lib\site-packages. Wenn Sie Pakete mit Anaconda installiert haben, die Sie mit der Arc-Installation von Python verwenden möchten, müssen Sie .pth-Dateien schreiben, um sie zwischen Python-Installationen auszutauschen ( Light Reading ).

Ich wollte zum Beispiel das Pandapaket aus meinem Anaconda-Zeug verwenden. Ich habe eine Textdatei im Site-Package-Ordner meines Arc erstellt, die anaconda.pthden Inhalt von enthält C:\Anaconda\Lib\site-packages, um die Arc-Installation mit den Site-Packages von Anaconda zu verknüpfen. Nun konnte ich import pandasinnerhalb des Arc-installierten Python ohne einen ImportError arbeiten. (Wenn Sie Probleme mit numpy haben, benennen Sie den Arc-installierten numpyOrdner in um. _numpy)

Kopieren Sie auf der Rückseite die Desktop<version>.pthDatei aus dem Arc-Site-Packages-Ordner und fügen Sie sie in den Ordner Ihrer Anaconda ein (der den tatsächlichen Speicherort des Arcpy-Pakets angibt). Erstellen Sie dann eine weitere .pth-Datei, die auf den Ordner Ihrer Arc-Site-Packages in Ihrem Anaconda verweist Sie können Arc-Pakete von Spyder verwenden, wenn Sie es verwenden.

MapImbibery
quelle
2

Ein anderer Benutzer hat eine ähnliche Frage zu github gestellt, die dich interessieren könnte. Hier ist der Kern dessen, was ein Benutzer empfohlen hat, um arcpy-Autovervollständigungsdaten für Anaconda zu importieren:

DamnWidget kommentierte am 26. Februar https://github.com/DamnWidget/anaconda/issues/284

Öffnen Sie eine PowerShell oder CMD.exe und wechseln Sie zu Ihrer Anaconda-Installation im Ordner "Packages" in Ihrem Sublime Text 3% APPDATA%. CD in den Ordner anaconda_lib und starten Sie einen interaktiven Python-Interpreter auf diesem Pfad.

Kopieren Sie Folgendes und fügen Sie es ein:

import jedi

print(jedi.Script('import arcpy; arcpy.').completions())

Dann (zumindest für mich) gab es ein paar Sachen im cmd-Fenster zurück, und es schien funktioniert zu haben. Ich habe Sublime Text erneut geöffnet und es wird die automatische Vervollständigung für Arcpy-Funktionen aufgerufen.

Mein Problem ist, dass es mehr als 5 Sekunden dauert, um sie zu laden. Es scheint, dass arcpy nie länger als ein paar Sekunden im Speicher geladen bleibt. Aber das ist ein anderes Thema, denke ich ...

clavicus
quelle
1

Sie sollten nur die 32-Bit-Version von Anaconda installieren.

mmann1123
quelle