Jak uzyskać dostęp do modułów Esri ArcPy z Enthought Canopy?

10

Mam ArcGIS 10.1 działający w moim systemie Windows, a także zainstalowałem nową 32-bitową wersję Canopy Express Enthought Python Distribution.

Czy można załadować i używać modułów Esri ArcPy firmy Canopy?

SharonB
źródło
skorzystałem z rozwiązania z pierwszej odpowiedzi i działałem idealnie, ale potrzebuję baldachimu x64, czy jest jakiś sposób na zaimportowanie tej biblioteki z baldachimem x64?
Μανώλης Παναγιωτάκης

Odpowiedzi:

20

Istnieje prosty sposób, który nie wymaga bałagania się w systemie PATH lub PYTHONPATH.

Dystrybucje Enthought Python, w tym Canopy x32, są samodzielne i nie potrzebują niczego w rejestrze ani w zmiennych środowiskowych. Dzięki temu mogą grać z innymi dystrybucjami Pythona, takimi jak ta, która jest dostarczana z ArcGIS 10.1.

Aby uzyskać dostęp do modułów python ArcGIS 10.1 z Enthought Canopy : Utwórz plik „ścieżki” w katalogu użytkownika Canopy, który wskazuje moduły python ArcGIS 10.1. W moim systemie utworzyłem plik tekstowy o nazwie arcpy.pthz tymi 4 liniami:

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

i umieść arcpy.pthw katalogu pakietów witryny użytkownika Canopy:

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

Aby uzyskać dostęp do modułów Enthought Canopy z ArcGIS 10.1 : Utwórz plik „ścieżki” w folderze pakietów witryny Arc, który wskazuje moduły python Canopy. W moim systemie utworzyłem plik tekstowy epd.ptho następujących 3 liniach:

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

a następnie umieść epd.pthw folderze pakietu witryny Arc:

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

To wszystko, co musiałem zrobić!

-Bogaty

PS Działa to, ponieważ Enthought Canopy 1.0 i ArcGIS10.1 są w tej samej wersji Python (2.7) i Numpy (1.6.1). Mam nadzieję, że nadal będziemy mieć tę kompatybilność!

Aktualizacja: Właśnie wypróbowałem to w Canopy 1.0.3, która używa Numpy 1.7.1 i nadal działa, mimo że ArcGIS 10.1 jest w Numpy 1.6.1. Hurra! Yippee!

Rich Signell
źródło
3
Kilka uwag: 1. Upewnij się, że zainstalowałeś EPD / Canopy x32 do użytku z ArCGIS Desktop. 2. Pliki pth są ładowane w kolejności alfabetycznej, więc aby uniknąć konfliktów, nadałem im nazwy: „zzArcGIS.pth” (folder pakietów stron Canopy) i „zzEPD.pth” (folder pakietów stron ArcGIS). 3. Jeśli korzystasz z ArcGIS Desktop x64 Background GP lub ArcGIS Server (który używa Python x64), musisz zainstalować 64-bitowy plik EPD / Canopy i dodać pliki .pth wskazujące na 64-bitowe foldery pakietów stron EPD i ArcGIS Python .
Curtis Cena
3

Tak to jest. Oto fragment wewnętrznego przewodnika instalacji, który został właśnie użyty do zrobienia tego samego na moim komputerze (upewnij się, że dotyczą one twojego konkretnego komputera):


Skonfiguruj środowisko dla EPD

  1. Dodaj nową ŚCIEŻKĘ do zmiennych użytkownika (wstaw epd do ŚCIEŻKI):

    (edytuj poniższe ścieżki zgodnie z używaną wersją EPD lub ArcGIS) PATH=C:\Python27_epd32;C:\Python27_epd32\Scripts;%PATH%

  2. Jeśli ArcGIS jest zainstalowany, ustaw zmienną środowiskową PYTHONPATH, aby
    ArcGIS mógł importować moduły EPD, a EPD może importować ArcPy:

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

Jeśli wystąpią problemy z konfliktem ArcGIS z EPD, możesz łatwo usunąć EPD ze środowiska ArcGIS, usuwając odniesienia do EPD w PYTHONPATH.


Zrzeczenie się! Chociaż poniższe kroki działały w przeszłości dla mnie, nie jestem osobą znającą się na systemie DOS i czułbym się lepiej, gdybyś skonsultował się z kimś z działu IT, aby upewnić się, że nie udzielam złych porad. Powiedziawszy to, czytaj dalej ...

Dodawanie ścieżek do zmiennych środowiskowych jest dość proste przy użyciu wiersza polecenia DOS (Wszystkie programy> Akcesoria> Wiersz polecenia). Użyjesz tego polecenia, setxaby trwale zmienić zmienne środowiskowe PATHi PYTHONPATHśrodowiskowe.

W wierszu polecenia wpisz „ echo %PATH%”; wypisze ciąg będący PATHzmienną. Zasadniczo jest to długi ciąg znaków. Teraz wypróbuj to ze PYTHONPATHzmienną, aby zobaczyć, co w niej jest. Zauważysz, że każda ścieżka w tych zmiennych jest oddzielona średnikiem ( ;). Kiedy dodajemy nowe ścieżki do tych zmiennych, musimy je uwzględnić.

wprowadź opis zdjęcia tutaj

Zasadniczo to, co będziesz robił, to informowanie komputera, że ​​twój nowy PATHi PYTHONPATHzmienne mają być równe niektórym nowym ciągom (ścieżkom) (jak C:\Python27_epd32\lib\site-packages;C:\ArcGIS\Desktop10.1\bin;) oraz temu, co jest już zapisane w zmiennej.

Polecenie, które wykonasz, aby ustawić PATHzmienną, to: setx PATH=C:\Python27_epd32;C:\Python27_epd32\Scripts;%PATH%(upewnij się, że ścieżki te dotyczą twojego systemu)

wprowadź opis zdjęcia tutaj

Polecenie, które wykonasz, aby ustawić PYTHONPATHzmienną, to: 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%(upewnij się, że ścieżki te dotyczą twojego systemu)

UWAGA: Upewnij się, że dodajesz „ %PATH%” i „ %PYTHONPATH%” na końcu odpowiednich poleceń. Jeśli tego nie zrobisz, zastąpisz te zmienne tylko nowymi ścieżkami i utracisz bieżącą zawartość.

Jason
źródło
Dzięki, Jason! Potrzebuję jednak trochę więcej szczegółów, jak to zrobić - jak edytować zmienne użytkownika?
SharonB 24.04.13
W wierszu polecenia DOS będziesz chciał użyć polecenia SETX (druga odpowiedź na stackoverflow.com/questions/8358265/... ), aby trwale wstawić ścieżki do zmiennych PATH i PYTHONPATH. Możesz to zrobić również za pomocą niektórych narzędzi administracyjnych, jeśli dobrze pamiętam, ale nie mam uprawnień na komputerze do ich używania, więc zwykle używam okna DOS.
Jason
Jeszcze raz dziękuję ... jako początkujący Python-er, który pracuje przede wszystkim w IDLE (nigdy nie dotykał wiersza poleceń DOS) Nie wiem / jak dodać nowe zmienne środowiskowe PATH i PYTHONPATH. Być może zrzuty ekranu i / lub opcja wykonania tego poprzez GUI (nie DOS)?
SharonB 24.04.13
Whoa. Dziękuję Ci. To imponujące. Bardzo doceniam, dam ci znać, jak to idzie.
SharonB
Hehe, to prosty proces, ale wygląda skomplikowany z powodu wszystkich ścieżek! Mam nadzieję, że cała twoja praca się zbliża!
Jason