Czy ArcPy może współpracować z Anacondą?

23

Próbuję postępować zgodnie ze wskazówkami krok po kroku w odpowiedzi na „ jak oddzielić instalację Pythona za pomocą ArcGIS ”, ale nie mogę znaleźć pliku ścieżki DTBGGP64.pth, w C:\Python27\ArcGIS10.2\Lib\site-packages.

Czy ktoś napotkał podobny problem?

Zastanawiam się, czy istnieje obejście polegające na dołączeniu pliku ścieżki, który informuje Anacondę, gdzie jest zainstalowany arcpy? Próbowałem utworzyć plik .pth zawierający następujący tekst:

# .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

i zapisałem go C:\Anaconda\Lib\site-packages(to znaczy, jeśli rzeczywiście tam zapisywane są wszystkie pakiety), ale pojawia się następujący błąd:

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.

Korzystam z conda 3.7-py27 na platformie Windows 7 (64-bitowej). Anaconda jest zainstalowana w, C:\Anacondaa ArcMap jest zainstalowana w C:\ArcGIS\Desktop10.2. Czy istnieje alternatywne rozwiązanie, dzięki któremu arcpy może współpracować z Anacondą? Chcę tylko móc uruchamiać moje skrypty z Powershell.

użytkownik26750
źródło
dla pewności - kiedy wpiszesz „python” w wierszu polecenia cmd - jaka wersja / instalacja to echo? (tj. Arcgis czy Anaconda?) - Ups, właśnie widziałem, że jest to trochę przestarzałe. problem już rozwiązany.
fluidmotion
Dowiedziałem się od programisty z Esri UC, że Anacondas zostanie wbudowany w ArcGIS 10.5. Poleciłbym po prostu zainstalować moduły, których potrzebujesz, w przeciwnym razie może się popsuć.
dgrubman,
Wygląda na to, że ^ tak jest w przypadku wymagań systemowych ArcGIS 10.5
WxCZar

Odpowiedzi:

13

Używasz 64-bitowej wersji Pythona w swojej instalacji Anaconda, a Python ArcMap jest 32-bitowy. Musisz zainstalować 64-bitową kompilację ArcGIS (64-bitowa Geoprocessing w tle lub ArcGIS dla serwera) i wskazać na to zamiast tego, lub zamiast tego zainstalować 32-bitową instancję Anaconda i spróbować ponownie. Zobacz stronę pobierania i pobierz 32-bitowy instalator.

Jason Scheirer
źródło
33

W tym samouczku pokazano, jak skonfigurować środowisko Conda do pracy z ArcGIS 10.4 i ArcGIS Pro 1.3.

Przepływ pracy, aby skonfigurować Anacondę w ArcGIS 10.4

  • Zainstaluj Anacondę bez zanieczyszczania środowiska Windows (ścieżki, rejestr), aby rozbić stos pythonów Esri
  • Skonfiguruj Anaconda z konkretnymi dodatkami, które chcesz, i
  • Skonfiguruj Python ArcGIS, aby był świadomy odpowiedniej zawartości Anaconda.

1) Zainstaluj Anaconda dla wszystkich użytkowników

  1. Idź do http://continuum.io/downloads
  2. Pobierz 32-bitową wersję Anaconda (Python 2.7)
  3. W oknach dialogowych instalacji:
    • Wybierz instalację dla wszystkich użytkowników
    • Zainstaluj domyślnie w folderze (C: \ Anaconda2)
    • WAŻNE : Aby uniknąć uszkodzenia ArcGIS (lub innego oprogramowania), odznacz pola wyboru (a) ustaw Anacondę jako domyślnego Pythona i (b) dodaj Python Anacondy do ŚCIEŻKI.
  4. Wybierz Start> Wszystkie programy (aplikacje)> Anaconda2 (32-bit)> Anaconda Monituj. Kliknij prawym przyciskiem myszy, uruchom jako administrator

2) Skonfiguruj środowisko Anaconda do użytku z ArcGIS

  1. Znajdź wersje numpy i matplotlib, z których korzysta ArcGIS.
Otwórz ArcMap i jego okno Python i wprowadź następujące polecenia:

    • >>> importuj sys, numpy, matplotlib
    • >>> drukuj (sys.version, numpy .__ wersja__, matplotlib .__ wersja__)
    • („2.7.10 (domyślnie, 23 maja 2015, 09:40:32) [MSC v.1500 32 bit (Intel)]”, „1.9.2”, „1.4.3”)
  1. Utwórz środowisko Anaconda zgodne z ArcGIS
    • Przejdź do wiersza polecenia Anaconda (Start> Wszystkie programy (aplikacje)> Anaconda2 (32-bit), wybierz „ Anaconda Monit ”), kliknij prawym przyciskiem myszy, Uruchom jako administrator .
    • Typ (w zależności od wersji ArcGIS, używam ArcGIS 10.4 jako przykładu tutaj):
    • „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”
    • Wpisz y, aby kontynuować.
    • Polecenie conda Anacondy utworzy następnie podkatalog środowiska, np .: „C: \ Anaconda2 \ envs \ arc104”, instalując w nim pobrane pakiety.
  2. Przetestuj środowisko wirtualne
    • W wierszu polecenia Anaconda wpisz: aktywuj arc104
    • Wpisz: lista Conda . Możesz zobaczyć listę zainstalowanych pakietów.
  3. Dodaj więcej pakietów
    • Możesz dodać więcej pakietów przy użyciu instalacji conda , ale upewnij się, że podałeś numery wersji tych, które nie zmienią wersji Pythona lub numpy środowiska (lub ArcGIS nie będzie już mógł korzystać z tego środowiska).
    • Dodajmy moduł Python Spatial Analysis Library ( pysal ).
    • Wpisz następujące polecenie w wierszu polecenia Anaconda : „conda install -n arc104 python = 2.7.10 numpy = 1.9.2 matplotlib = 1.4.3 pysal”

3) Skonfiguruj ArcGIS, aby zobaczyć Anacondę i odwrotnie

  1. Anaconda Python do ArcPy
    • Skopiuj plik Desktop10.4.pth do folderu pakietów witryn środowiska Anaconda:
    • From: C: \ Python27 \ ArcGIS10.4 \ Lib \ site-packages \ Desktop10.4.pth
    • Do: C: \ Anaconda2 \ envs \ arc104 \ Lib \ site-packages \ Desktop10.4.pth
  2. Arcpy do Anaconda Python
    • Utwórz plik zconda.pth (ścieżka) z zawartością „C: \ Anaconda \ envs \ arc104 \ lib \ site-packages”.
    • Następnie skopiuj zconda.pth do C: \ Python27 \ ArcGIS10.4 \ Lib \ site-packages
  3. Testowanie w ArcMap
    • Jako zwykły użytkownik uruchom ArcMap, otwórz okno Python
    • wpisz „import pysal”
    • wpisz „pysal”. Wyskakujące menu z listą funkcji dostarczanych przez pysal jest całkiem dobrym znakiem, że instalacja się powiodła.
  4. Testowanie w PyCharm
    • Uruchom PyCharm, w menu Plik \ Ustawienia… wybierz Projekt, a następnie Tłumacz projektu
    • Zignoruj ​​listę rozwijaną Project Interpreter i kliknij przycisk koła zębatego , aby dodać lokalny, aw przeglądarce plików wybierz C: \ Anaconda2 \ envs \ arc104 \ python.exe
    • Aby uruchomić skrypt, kliknij go prawym przyciskiem myszy w oknie projektu i wybierz Uruchom lub Debuguj
    • Uruchom ponownie PyCharm dla konsoli Python, aby korzystać ze środowiska arc104.

Przepływ pracy, aby skonfigurować Anaconda z ArcGIS Pro 1.3

1) Utwórz środowisko Anaconda kompatybilne z ArcGIS Pro

  • Skopiuj folder arcgispro-py3 z C: \ Program Files \ ArcGIS \ Pro \ bin \ Python \ envs i wklej do C: \ Anaconda2 \ envs
  • Zmień nazwę skopiowanego folderu arcgispro-py3 w C: \ Anaconda2 \ envs na arcpro

2) Przetestuj środowisko wirtualne

  • W wierszu polecenia Anaconda wpisz: aktywuj arcpro
  • Wpisz: lista Conda . Możesz zobaczyć listę zainstalowanych pakietów

3) Dodaj więcej pakietów

  • Dodajmy moduł Python Spatial Analysis Library ( pysal ).
  • Wpisz następujące polecenie w wierszu polecenia Anaconda : „conda install pysal”

4) Skonfiguruj ArcGIS, aby zobaczyć Anacondę i odwrotnie

  • Anaconda Python do ArcPy
    • Edytuj plik ArcGISPro.pth (ścieżka) w „C: \ Anaconda2 \ envs \ arcpro \ lib \ site-packages”.
    • Zmień względną ścieżkę ArcPy na C: \ Program Files \ ArcGIS \ Pro \ Resources \ ArcPy
    • Zmień względną ścieżkę ArcToolBox na C: \ Program Files \ ArcGIS \ Pro \ Resources \ ArcToolBox
  • Arcpy do Anaconda Python
    • Utwórz plik zconda.pth (ścieżka) z zawartością „C: \ Anaconda2 \ envs \ arcpro \ lib \ site-packages”.
    • Następnie skopiuj zconda.pth do C: \ Program Files \ ArcGIS \ Pro \ bin \ Python \ envs \ arcgispro-py3 \ lib \ site-packages
  • Testowanie w ArcGIS Pro
    • Uruchom ArcGIS Pro, otwórz okno Python
    • wpisz „import pysal”
    • wpisz „pysal”. Wyskakujące menu z listą funkcji dostarczanych przez pysal jest całkiem dobrym znakiem, że instalacja się powiodła.
  •  Testowanie w PyCharm
    • Uruchom PyCharm, w menu Plik \ Ustawienia… wybierz Projekt, a następnie Tłumacz projektu
    • Zignoruj ​​listę rozwijaną Project Interpreter i kliknij przycisk koła zębatego , aby dodać lokalny, aw przeglądarce plików wybierz C: \ Anaconda2 \ envs \ arcpro \ python.exe
    • Aby uruchomić skrypt, kliknij go prawym przyciskiem myszy w oknie projektu i wybierz Uruchom lub Debuguj
    • Uruchom ponownie PyCharm dla konsoli Python, aby korzystać ze środowiska arcpro.

Referencje

  1. https://goo.gl/pOyLA9
Qiusheng Wu
źródło
To wszystko działa świetnie, pakiety Anaconda są w ArcGIS i odwrotnie, ale mam jeszcze problem. Jeśli spróbuję wykonać Arcpy importu, a następnie Arcpy. Opisz w klasie funkcji RDBMS (Oracle) w Anaconda, to otrzymam IOError: ... nie istnieje. Działa dobrze w klasie plików filegeodatabase, ale pozornie nie łączy się z Oracle (np. Arcpy.Describe (r'C: \ temp \ password_saved_sde_file.sde \ EDGIS.ElectricDataset \ EDGIS.Anchor ')).
Phil Penn
7

Aby rozwiązać ten problem, przejdź do folderu python27 \ Lib \ site-packages, mój znajdował się w folderze „C: \ Python27 \ ArcGIS10.1 \ Lib \ site-packages” i znajdź plik Desktop10.1.pth.

W moim systemie problem został rozwiązany przez proste skopiowanie pliku Desktop10.1.pth do „C: \ AppData \ Local \ Continuum \ Anaconda \ Lib \ site-packages”.

Jeśli używasz 64-bitowej wersji Anaconda, podczas próby zaimportowania Arcpy pojawi się inny błąd, ponieważ ArcGIS działa w wersji 32-bitowej. Dlatego musisz upewnić się, że masz zainstalowany 32-bitowy Anaconda zamiast 64-bitowy, aby wszystko pasowało do ArcGIS. Po skopiowaniu pliku i posiadaniu 32-bitowej wersji Anaconda importowanie Arcpy powinno działać.

WxCZar
źródło
3

Jeśli zainstalowałeś Arc przed Anacondą, twój domyślny IDLE, Python Window (w Arc) i konsola Python zawsze będą pobierać z modułów zainstalowanych w Arc, tj. C:\Python27\ArcGIS <version>\Lib(I / lub) Lib\site-packages. Jeśli masz zainstalowane pakiety z Anacondą, których chcesz używać z instalacją Pythona w Arc, musisz napisać pliki .pth w celu współużytkowania między instalacjami Pythona ( lekki odczyt ).

Na przykład chciałem użyć pakietu pand z mojej zawartości Anaconda. Utworzyłem plik tekstowy w folderze pakietów witryny Arc zwanym anaconda.pthzawartością, C:\Anaconda\Lib\site-packagesaby połączyć instalację Arc z pakietami witryn Anaconda. Teraz mógłbym import pandaswewnątrz Pythona zainstalowanego w Arc bez ImportError. (Jeśli masz problemy z Numpy, zmień nazwę numpyfolderu zainstalowanego w Arc na_numpy ).

Z drugiej strony skopiuj i wklej Desktop<version>.pthplik z folderu pakietów witryny Arc do Anacondy (który określa rzeczywistą lokalizację pakietu arcpy) i utwórz kolejny plik .pth, który wskazuje folder folderów Arc witryny w swojej Anacondy, więc możesz użyć pakietów Arc od Spyder, jeśli go używasz.

MapImbibery
źródło
2

Inny użytkownik zadał podobne pytanie na github, które może Cię zainteresować. Oto sedno tego, co zalecił jeden użytkownik, aby zaimportować dane autouzupełniania arcpy dla anakondy:

DamnWidget skomentował 26 lutego https://github.com/DamnWidget/anaconda/issues/284

Otwórz PowerShell lub CMD.exe i przejdź do instalacji anakondy w folderze Packages w Sublime Text 3% APPDATA%. CD do folderu anaconda_lib i uruchom na tej ścieżce interaktywny interpreter Pythona.

Skopiuj i wklej następujące elementy:

import jedi

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

Potem (przynajmniej dla mnie) zwróciło kilka rzeczy w oknie cmd i wydawało się, że zadziałało. Ponownie otworzyłem Sublime Text i wyświetla on autouzupełnianie dla funkcji arcpy.

Mój problem polega na tym, że ładowanie ich zajmuje ponad 5 sekund, wydaje się, że nigdy nie ładuje Arcpy do pamięci dłużej niż kilka sekund. Ale myślę, że to inny problem ...

clavicus
źródło
1

Powinieneś po prostu zainstalować 32-bitową wersję Anacondy.

mmann1123
źródło