Menghindari kesalahan impor arcpy (RuntimeError: NotInitialized) saat menggunakan IDLE?


11

Versi ArcGIS: ArcGIS 10, Mesin Python 2.6.5: Windows 7 64bit (Intel)

Saya menerima kesalahan berikut ketika mengimpor arcpy menggunakan IDLE (gui dan cmd prompt) dan ketika menggunakan pythonwin.

Saya telah menghapus python26 dan python25 dari sistem saya dan telah melakukan instalasi baru ArcGIS 10 dan python. Karena itu saya memanggil IDLE dari sini: "C: \ Python26 \ ArcGIS10.0 \ pythonw.exe"

Kesalahan:

** IDLE 2.6.5

import arcpy Traceback (panggilan terakhir terakhir): File "", line 1, di import arcpy File "C: \ Program Files (x86) \ ArcGIS \ Desktop10.0 \ arcpy \ arcpy__init __. py", baris 17, dari dari geoprocessing import gp File "C: \ Program Files (x86) \ ArcGIS \ Desktop10.0 \ arcpy \ arcpy \ geoprocessing__init __. py", baris 14, dari _base import * File "C: \ Program Files (x86) \ ArcGIS \ Desktop10 .0 \ arcpy \ arcpy \ geoprocessing_base.py ", baris 568, dalam env = GPEnvironmentments (gp) File" C: \ Program Files (x86) \ ArcGIS \ Desktop10.0 \ arcpy \ arcpy \ geoprocessing_base.py ", baris 565 , dalam GPEnvironmentments, kembalikan GPEnvironment (geoprocessor) File "C: \ Program Files (x86) \ ArcGIS \ Desktop10.0 \ arcpy \ arcpy \ arcop \ geoprocessing_base.py", baris 521,di init self._refresh () File "C: \ Program Files (x86) \ ArcGIS \ Desktop10.0 \ arcpy \ arcpy \ geoprocessing_base.py", baris 523, dalam _refresh envset = (set (env untuk env di self._gp.listEnvironmentments) ())) RuntimeError: NotInitialized **

EsriUK dan dukungan teknis Esri merekomendasikan penginstalan ulang baru dan pengeditan registri = tetapi ini tidak berhasil. Saya menunggu mereka untuk solusi.

Saya telah menyelidiki apakah itu masalah jalur modul arcpy. Ada beberapa tautan di forum Esri dan bantuan ArcGIS mengenai jalur . Juga, kemungkinan utas terkait di gis.stackexchange .

Saya mengikuti saran dari 'kimo' di utas forum Esri. Tapi tetap saja kesalahan impor.

  1. Variabel sistem saya (yang telah saya edit) adalah: PYTHONPATH = "c: \ python26"; "C: \ Python26 \ ArcGIS10.0"; "C: \ Python26 \ ArcGIS10.0 \ Lib \ situs-paket"; " C: \ Program Files (x86) \ ArcGIS \ Desktop10.0 \ arcpy "

  2. Saya telah memeriksa bahwa saya memiliki konten "C: \ Python26 \ ArcGIS10.0 \ Lib \ site-Packages \ Desktop10.pth". Isi adalah: C: \ Program Files (x86) \ ArcGIS \ Desktop10.0 \ bin C: \ Program Files (x86) \ ArcGIS \ Desktop10.0 \ arcpy C: \ Program Files (x86) \ ArcGIS \ Desktop10.0 \ ArcToolbox \ Script

Namun, pesan traceback menunjukkan bahwa skrip .py ditemukan di folder: C: \ Program Files (x86) \ ArcGIS \ Desktop10.0 \ arcpy \ arcpy. Oleh karena itu, disarankan modul arcpy ditemukan oleh interpreter tetapi kemudian tidak diinisialisasi (?).

Arcpy dapat dipanggil dari Jendela Python di dalam ArcMap dan ArcCatalog oke. Hanya ketika dipanggil dari interpreter Python bahwa 'impor arcpy' gagal. Oleh karena itu, arcpy diinisialisasi oke oleh ArcMap / ArcCatalog, tetapi bukan IDLE - bagaimana ini bisa terjadi?

Saya sebelumnya telah menginstal python25, kemudian python26 lalu setelah itu di-upgrade ke ArcGIS 10. Oleh karena itu, ada cukup banyak python lawas pada mesin saya. Namun, saya telah menghapus semua dan registri dibersihkan menggunakan ccleaner.

Adakah yang bisa menyarankan pertanyaan lain karena saya tidak cukup berpengalaman dengan python untuk menyelesaikan kesalahan inisialisasi / runtime? Saya juga ingin menghindari menginstal ulang OS!


juga diposting di ... forums.arcgis.com/threads/…

1
Tautan ini membantu saya. Saya menambahkan import arcserver sebelum mengimpor garis arcpy. myarcgisserver.wordpress.com/2014/04/04/...
G ...... T ......

Jawaban:


5

Melihat posting Anda di sini dan di Forum ESRI, saya pikir Anda memiliki beberapa pengaturan lingkungan yang kacau.

Anda ingin meletakkan C: \ Python26 \ ArcGIS10.0 dalam variabel PATH sistem Anda, yang membawa Anda ke executable yang benar dari IDLE, PythonWin atau baris perintah.

PYTHONPATH Anda mungkin kosong. Atau, Anda bisa memasukkan 3 bait file Desktop10.pth Anda: C: \ Program Files (x86) \ ArcGIS \ Desktop10.0 \ bin C: \ Program Files; (x86) \ ArcGIS \ Desktop10.0 \ arcpy; C: \ Program Files (x86) \ ArcGIS \ Desktop10.0 \ ArcToolbox \ Scripts - path tersebut akan didahulukan dari pencarian standar untuk modul (di bawah python.exe atau pythonw.exe dipanggil).

Akhirnya, karena Anda telah menghapus dan menginstal beberapa versi Python. Pada titik ini, seharusnya tidak ada apa-apa di bawah folder C: \ Python26 kecuali folder ArcGIS10.0 dari ESRI yang disediakan Python 2.6.5 32-bit instal. Jika ada file Lib di sana itu adalah sisa dari instalasi sebelumnya dan akan mengganggu. Ini akan menjadi masalah yang lebih besar jika ada atau menginstal Python26 Anda sebelumnya 64-bit.

Juga, karena Anda menggunakan Windows 7 64-bit, Registry path ke kunci Python 32-bit adalah HKLM \ SOFTWARE \ Wow6432Node \ Python Jika Anda memiliki HKLM \ SOFTWARE \ Python, mereka akan menjadi Kunci untuk 64-bit Install. Mereka juga akan mengganggu instalasi 32-bit.


Hai Stuart. Terimakasih atas infonya. Saya telah menjawab di forums.arcgis.com , sorak-sorai Sam
SamFranklin

Fakta yang geoprocessing_base.pyditemukan (lihat jejak tumpukan) sangat menunjukkan bahwa tidak ada masalah dengan menemukan modul, yang menghilangkan saran Anda untuk memodifikasi PYTHONPATH. Hanya ada konflik antara 64 dan 32 Python jika keduanya aktifPATH . Namun, jika versi 64 bit telah dihapus, mereka tidak mungkin diaktifkan PATH. (Bahkan jika lokasinya tetap PATHada, tidak ada lagi yang bisa ditemukan.)
jpmc26

5

Saya mengalami masalah ini ketika mengatur skrip di lingkungan baru .... Saya lupa mengatur server manajer lisensi menggunakan ArcGIS Administrator.


2

melakukan hal ini

  1. buka manajer aplikasi arcgis
  2. atur manajer lisensi

tinjau berapa banyak dari setiap tingkat lisensi yang tersedia. jika Anda ingin arcpy memeriksa tingkat lisensi tertentu, Anda ingin kode seperti ini

import arcview
import arcpy

Hai - coba impor arcview. Menerima kesalahan berikut. Namun, saya kemudian bisa menggunakan arcpy, oke? >>> import arcview Traceback (panggilan terakhir terakhir): File "<pyshell # 3>", baris 1, di <module> import arcview File "C: \ Program Files (x86) \ ArcGIS \ Desktop10.0 \ arcpy \ arcview.py ", baris 18, di <module> gp.setProduct (" ArcView ") RuntimeError: ERROR 999999: Fungsi eksekusi kesalahan. >>> import arcpy >>> Saya telah memberikan jawaban sepenuhnya pada: bit.ly/ggtlio tempat saya dapat melampirkan tangkapan layar dan memberikan jawaban yang lebih lengkap.
SamFranklin

2

Inilah yang saya lakukan, variabel Path dan PYTHONPATH Environment

ini cukup bagiku.

Saya telah menggunakan PyScripter tapi saya sudah mengunduh versi 2.7, Itu perlu untuk menggunakan PyScripter untuk python 2.6 agar tidak ada kesalahan dengan impor arcpy


0

Dalam kasus saya, saya tidak terhubung ke jaringan secara langsung atau melalui VPN untuk memvalidasi Lisensi ArcGIS. Setelah saya terhubung ke jaringan, kesalahan "RuntimeError: NotInitialized" telah diatasi dan skrip saya berjalan dengan sukses.

Meskipun, Anda harus ... 1) membuka manajer aplikasi arcgis 2) mengatur manajer lisensi ... sebagaimana disebutkan oleh gotchula

Semoga ini membantu!

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.