problemy z importowaniem arcpy w Pythonie IDLE


9

Chciałbym użyć arcpy w moim kodzie Pythona. Jestem w stanie zaimportować go za pomocą stacjonarnej konsoli python ARCGIS. Ale nie jestem w stanie zaimportować go do Python IDLE. Pojawia się następujący błąd

Traceback (most recent call last):

File "C:\Python26\lib\site-packages\win32com\client\dynamic.py", line 246, in 
__getitem__raise TypeError("This object does not support enumeration") 

Wspomniałem następujące foldery jako część mojej ścieżki python.

C:\Program Files\ArcGIS\Desktop10.0\arcpy;
C:\Program Files\ArcGIS\Desktop10.0\arcpy\arcpy;
C:\Python26\ArcGIS10.0\Tools\Scripts

Znalazłem ten sam problem.

import arcpy daje „TypeError: Ten obiekt nie obsługuje wyliczenia”

Użytkownik twierdzi, że wynika to z następujących przyczyn:

Napisałem dla Arcgis 9 i 10 w tym samym katalogu. Coś na temat logiki inicjalizacji w importowanym arcpy znajduje niestandardowy plik arcgisscripting.py używany do uruchamiania Pythona 2.6 z arcgis 9.3, gdy są one umieszczone razem.

Mam tylko ARCGIS 10 i nie jestem świadomy tego, jak arcpy szuka swoich modułów.


Czy po prostu wpisujesz polecenie importowania arcpy w powłoce Pythona (IDLE), aby zobaczyć ten błąd? A może po prostu wpisując polecenie importuj arcpy do okna Pythona (IDLE) i używając Run Module, aby to zobaczyć? Czy musisz używać długiej PYTHONPATH? Mam po prostu PYTHONPATH = C: \ Python26 i C: \ Python26 \ ArcGIS10.0 jako część mojej zmiennej PATH.
PolyGeo

tak, właśnie importuję moduł w oknie IDLE. Próbowałem także użyć tego interpretera Pythona w ARCGIS, zaimportowałem moduły arpy. Nadal pojawia się błąd.
Karthik Bharadwaj

1
Czy musisz używać długiej PYTHONPATH? Mam po prostu PYTHONPATH = C: \ Python26 i C: \ Python26 \ ArcGIS10.0 jako część mojej zmiennej PATH.
PolyGeo

1
rozwiązanie Windows -> zainstaluj ponownie zarówno arcgis, jak i python.
Aragonia

1
Chciałbym zrozumieć, w jaki sposób problem leżący u jego podstaw i jak jest on spowodowany, w najgorszym przypadku moim zdaniem muszę odinstalować oba. @PolyGeo. Zmieniłem ścieżkę i zmienną ścieżki python. ale problem usuwa to samo.
Karthik Bharadwaj

Odpowiedzi:


9

Napraw swój PYTHONPATH. Z pomocy ArcGIS:

Korzystając z instrukcji importu, Python szuka modułu pasującego do tej nazwy w następujących lokalizacjach (w następującej kolejności):

  1. Ścieżki określone w PYTHONPATHsystemowej zmiennej środowiskowej
  2. Zestaw standardowych folderach Pythona (aktualny folder C:\python2x\lib, C:\python2x\Lib\site-packagesi tak dalej)
  3. Ścieżki określone w dowolnym .pthpliku znalezionym w 1 i 2

Aby uzyskać więcej informacji na ten temat, zobacz: http://docs.python.org/install/index.html#modifying-python-s-search-path . Instalacja produktów ArcGIS 10.0 spowoduje zainstalowanie Pythona 2.6, jeśli nie jest jeszcze zainstalowany. Instalacja doda również plik Desktop10.pth(lub Engine10.pthlub Server10.pth) do python26\Lib\site-packages. Zawartość tego pliku to dwa wiersze zawierające ścieżkę do folderów arcpy i bin instalacji ArcGIS. Te dwie ścieżki są wymagane do pomyślnego zaimportowania ArcPy w Pythonie w wersji 2.6. Podczas korzystania z instrukcji importu Python odwołuje się do PYTHONPATHzmiennej środowiskowej systemu w celu zlokalizowania plików modułów. Ta zmienna jest ustawiona na listę katalogów.


Wskazówka:

Jeśli podczas importowania ArcPy wystąpi jeden z następujących błędów, nie można znaleźć wymaganych modułów: ImportError: No module named arcpy ImportError: No module named arcgisscripting

Aby rozwiązać ten problem, przejdź do python26\Lib\site-packagesfolderu za pomocą Eksploratora Windows i dodaj lub edytuj Desktop10.pthplik. Plik powinien zawierać dwa wiersze pokazane poniżej (poprawione do ścieżki systemu, jeśli się nie zgadzają):

  • C:\Program Files\ArcGIS\Desktop10.0\arcpy
  • C:\Program Files\ArcGIS\Desktop10.0\bin

Dziękuje wszystkim. Jak sugerował @Aragon, ponownie zainstalowałem ARCGIS Desktop i Python. umieść plik Desktop.pth na swoim miejscu i zadziałało.
Karthik Bharadwaj
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.