masalah mengimpor arcpy di Python IDLE

9

Saya ingin menggunakan arcpy dalam kode python saya. Saya dapat mengimpornya melalui konsol python desktop ARCGIS. Tetapi saya tidak dapat mengimpornya ke Python IDLE. Saya mendapatkan kesalahan berikut

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

Saya menyebutkan folder berikut sebagai bagian dari jalur python saya.

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

Saya menemukan masalah yang sama disebutkan.

import arcpy yields "TypeError: Objek ini tidak mendukung enumerasi"

Pengguna mengatakan ini disebabkan oleh hal berikut:

Saya menulis untuk Arcgis 9 dan 10 di direktori yang sama. Sesuatu tentang logika inisialisasi dalam impor arcpy menemukan custom arcgisscripting.py yang digunakan untuk menjalankan python 2.6 dengan arcgis 9.3 ketika mereka berada bersama.

Saya hanya punya ARCGIS 10 dan saya tidak tahu bagaimana arcpy mencari modul-modulnya.

Karthik Bharadwaj
sumber
Apakah Anda cukup mengetikkan impor arcpy ke shell Python (IDLE) untuk melihat kesalahan ini? Atau mungkin hanya mengetikkan arcpy impor ke jendela Python (dari IDLE) dan menggunakan Run Module untuk melihatnya? Apakah Anda harus menggunakan PYTHONPATH yang panjang? Saya hanya memiliki PYTHONPATH = C: \ Python26 dan C: \ Python26 \ ArcGIS10.0 sebagai bagian dari variabel PATH saya.
PolyGeo
ya, saya hanya mengimpor modul di jendela IDLE. Saya juga mencoba menggunakan interpreter python ini di ARCGIS, mengimpor modul arpy. Saya masih mendapatkan kesalahan.
Karthik Bharadwaj
1
Apakah Anda harus menggunakan PYTHONPATH yang panjang? Saya hanya memiliki PYTHONPATH = C: \ Python26 dan C: \ Python26 \ ArcGIS10.0 sebagai bagian dari variabel PATH saya.
PolyGeo
1
solusi windows -> instal ulang arcgis dan python.
Aragon
1
Saya ingin memahami bagaimana masalah yang mendasarinya dan bagaimana hal itu disebabkan, pada kasus terburuk saya pikir saya harus menghapus keduanya. @PolyGeo. Saya mengubah variabel path dan python path saya. tetapi masalah menghilangkan hal yang sama.
Karthik Bharadwaj

Jawaban:

9

Perbaiki PYTHONPATH. Dari ArcGIS bantuan:

Saat menggunakan pernyataan impor, Python mencari modul yang cocok dengan nama itu di lokasi berikut (dan dalam urutan berikut):

  1. Jalur yang ditentukan dalam PYTHONPATHvariabel lingkungan sistem
  2. Satu set folder Python standar (folder saat ini, C:\python2x\lib, C:\python2x\Lib\site-packages, dan sebagainya)
  3. Path ditentukan di dalam .pthfile apa pun yang ditemukan dalam 1 dan 2

Untuk informasi lebih lanjut tentang ini, lihat yang berikut: http://docs.python.org/install/index.html#modifying-python-s-search-path . Instalasi produk ArcGIS 10.0 akan menginstal Python 2.6 jika belum diinstal. Instalasi juga akan menambahkan file Desktop10.pth(atau Engine10.pthatau Server10.pth) ke python26\Lib\site-packages. Isi file ini adalah dua baris yang berisi path ke folder arcG dan folder instalasi ArcGIS Anda. Kedua jalur ini diperlukan untuk mengimpor ArcPy dengan sukses di Python versi 2.6. Saat menggunakan pernyataan impor, Python merujuk ke PYTHONPATHvariabel lingkungan sistem Anda untuk mencari file modul. Variabel ini diatur ke daftar direktori.


Tip:

Jika mengimpor ArcPy menghasilkan kesalahan berikut, modul yang diperlukan tidak dapat ditemukan: ImportError: No module named arcpy ImportError: No module named arcgisscripting

Untuk mengatasinya, telusuri menggunakan Windows Explorer ke python26\Lib\site-packagesfolder dan tambahkan atau edit Desktop10.pthfile. File tersebut harus berisi dua baris yang ditunjukkan di bawah ini (dikoreksi ke jalur sistem Anda jika tidak cocok):

  • C:\Program Files\ArcGIS\Desktop10.0\arcpy
  • C:\Program Files\ArcGIS\Desktop10.0\bin
pengguna
sumber
Terima kasih semuanya. Seperti @Aragon menyarankan saya menginstal ulang ARCGIS Desktop dan Python. letakkan file Desktop.pth di tempatnya dan itu berhasil.
Karthik Bharadwaj