Python IDLE'de arcpy içe aktarmayla ilgili sorunlar


9

Piton kodumda arcpy kullanmak istiyorum. ARCGIS masaüstü python konsolu üzerinden içe aktarabiliyorum. Ancak Python IDLE içine aktaramıyorum. Aşağıdaki hatayı alıyorum

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") 

Python yolumun bir parçası olarak aşağıdaki klasörlerden bahsetmiştim.

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

Aynı sorundan bahsedildiğini gördüm.

import arcpy şunu verir: "TypeError: Bu nesne numaralandırmayı desteklemiyor"

Kullanıcı bunun aşağıdakilerden kaynaklandığını söylüyor:

Arcgis 9 ve 10 için aynı dizine yazdım. Import arcpy'deki başlatma mantığı hakkında bir şey, birlikte bulunduklarında arcytis 9.3 ile python 2.6'yı çalıştırmak için kullanılan özel arcgisscripting.py dosyasını bulur.

Sadece ARCGIS 10 var ve arcpy'nin modüllerini nasıl aradığının farkında değilim.


Bu hatayı görmek için Python kabuğuna (IDLE öğesinin) import arcpy yazıyor musunuz? Ya da sadece import arcpy'yi bir Python penceresine (IDLE) yazıp görmek için Run Module'ü mi kullanıyorsunuz? Uzun bir PYTHONPATH kullanmak zorunda mısınız? PATH değişkenimin bir parçası olarak sadece PYTHONPATH = C: \ Python26 ve C: \ Python26 \ ArcGIS10.0 var.
PolyGeo

evet, im sadece IDLE penceresinde modülü ithal.Ayrıca ARCGIS bu python yorumlayıcı kullanmayı denedim, arpy modülleri ithal. Hala hatayı alıyorum.
Karthik Bharadwaj

1
Uzun bir PYTHONPATH kullanmak zorunda mısınız? PATH değişkenimin bir parçası olarak sadece PYTHONPATH = C: \ Python26 ve C: \ Python26 \ ArcGIS10.0 var.
PolyGeo

1
windows çözümü -> hem arcgis hem de python'u yeniden yükleyin.
Aragon

1
Altta yatan sorunun nasıl ve nasıl neden olduğunu anlamak istiyorum, en kötü durumda ben her ikisini de uninstsall düşünüyorum. @PolyGeo. Yolumu ve python yolu değişkenimi değiştirdim. ancak sorun aynısını giderir.
Karthik Bharadwaj

Yanıtlar:


9

Düzelt PYTHONPATH. Gönderen ArcGIS yardımı:

Bir içe aktarma ifadesi kullanırken Python, aşağıdaki konumlarda (ve aşağıdaki sırayla) bu adla eşleşen bir modül arar:

  1. PYTHONPATHSistem ortamı değişkeninde belirtilen yollar
  2. Standart Python klasörler kümesi (geçerli klasör, C:\python2x\lib, C:\python2x\Lib\site-packagesvb)
  3. .pth1 ve 2'de bulunan herhangi bir dosyanın içinde belirtilen yollar

Bununla ilgili daha fazla bilgi için aşağıdakilere bakın: http://docs.python.org/install/index.html#modifying-python-s-search-path . ArcGIS 10.0 ürünlerinin kurulumu, önceden kurulmamışsa Python 2.6'yı kuracaktır. Yükleme ayrıca dosyayı Desktop10.pth(veya Engine10.pthveya Server10.pth) içine ekler python26\Lib\site-packages. Bu dosyanın içeriği, sisteminizin ArcGIS kurulumunun arcpy ve bin klasörlerine giden yolu içeren iki satırdır. Bu iki yol, ArcPy'yi Python sürüm 2.6'da başarıyla almak için gereklidir. Bir import deyimi kullanırken, Python PYTHONPATHmodül dosyalarını bulmak için sisteminizin ortam değişkenini ifade eder . Bu değişken bir dizin listesine ayarlanmıştır.


İpucu:

ArcPy'i içe aktarmak aşağıdaki hatalardan birini oluşturursa, gerekli modüller bulunamadı: ImportError: No module named arcpy ImportError: No module named arcgisscripting

Bunu çözmek için Windows Gezgini'ni kullanarak python26\Lib\site-packagesklasöre göz atın ve Desktop10.pthdosyayı ekleyin veya düzenleyin . Dosya aşağıda gösterilen iki satırı içermelidir (eşleşmezlerse sisteminizin yoluna düzeltilir):

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

Hepinize teşekkürler. @Aragon'un önerdiği gibi hem ARCGIS Desktop'ı hem de Python'u yeniden kurdum. Desktop.pth dosyasını yerine koyun ve çalıştı.
Karthik Bharadwaj
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.