पायथन आईडीएल में आर्कपी आयात करने वाले मुद्दे


9

मैं अपने अजगर कोड में आर्कपी का उपयोग करना चाहता हूं। मैं इसे ARCGIS डेस्कटॉप पायथन कंसोल के माध्यम से आयात करने में सक्षम हूं। लेकिन मैं इसे पायथन आईडीएलई में आयात करने में सक्षम नहीं हूं। मुझे निम्नलिखित त्रुटि मिलती है

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

मैंने अपने अजगर पथ के एक भाग के रूप में निम्नलिखित फ़ोल्डरों का उल्लेख किया।

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

मैंने उसी मुद्दे का उल्लेख किया।

इम्पोर्ट आर्कफी पैदावार "TypeError: यह ऑब्जेक्ट एन्यूमरेशन का समर्थन नहीं करता है"

उपयोगकर्ता का कहना है कि यह निम्नलिखित के कारण है:

मैंने उसी निर्देशिका में आर्कगिस 9 और 10 के लिए लिखा था। आयात में प्रारंभिक तर्क के बारे में कुछ खस्ता है, कस्टम आर्कगिसस्क्रिप्टिंगहोम का उपयोग आर्कगिस 9.3 के साथ अजगर 2.6 चलाने के लिए उपयोग किया जाता है जब वे एक साथ स्थित होते हैं।

मेरे पास केवल ARCGIS 10 है और मुझे इस बात की जानकारी नहीं है कि आर्कपी अपने मॉड्यूल के लिए कैसा दिखता है।


क्या आप बस इस त्रुटि को देखने के लिए पायथन शेल (IDLE के) में आयात कर रहे हैं? या शायद केवल पायथन विंडो (IDLE के) में आयात करना और इसे देखने के लिए रन मॉड्यूल का उपयोग करना? क्या आपको लंबे PYTHONPATH का उपयोग करना है? मेरे पास मेरे PATH चर के हिस्से के रूप में PYTHONPATH = C: \ Python26 और C: \ Python26 \ ArcGIS10.0 है।
PolyGeo

हाँ, IM केवल IDLE विंडो में मॉड्यूल आयात कर रहा है। मैंने ARCGIS में इस अजगर इंटरप्रेटर का उपयोग करने की कोशिश की, जो कि खस्ता मॉड्यूल आयात किया। मुझे अभी भी त्रुटि मिलती है।
कार्तिक भारद्वाज

1
क्या आपको लंबे PYTHONPATH का उपयोग करना है? मेरे पास मेरे PATH चर के हिस्से के रूप में PYTHONPATH = C: \ Python26 और C: \ Python26 \ ArcGIS10.0 है।
PolyGeo

1
विंडोज़ समाधान -> आर्कगिस और अजगर दोनों को पुनर्स्थापित करें।
आरागॉन

1
मैं यह समझना चाहूंगा कि अंतर्निहित मुद्दा और यह कैसे होता है, सबसे खराब स्थिति में मुझे लगता है कि दोनों को एकतरफा करना होगा। @PolyGeo। मैंने अपना पथ और अजगर पथ चर बदल दिया। लेकिन मुद्दा वही हटा देता है।
कार्तिक भारद्वाज

जवाबों:


9

अपने को ठीक करो PYTHONPATH। से ArcGIS मदद:

आयात विवरण का उपयोग करते समय, पायथन एक मॉड्यूल की तलाश करता है जो निम्नलिखित स्थानों में उस नाम से मेल खाता हो (और निम्नलिखित क्रम में):

  1. PYTHONPATHसिस्टम वातावरण चर में निर्दिष्ट पथ
  2. मानक अजगर फ़ोल्डरों का एक सेट (वर्तमान फ़ोल्डर, C:\python2x\lib, C:\python2x\Lib\site-packages, और इतने पर)
  3. .pth1 और 2 में मिली किसी भी फ़ाइल के अंदर निर्दिष्ट पथ

इस बारे में अधिक जानकारी के लिए, निम्न देखें: http://docs.python.org/install/index.html#modifying-python-s-search-path । अगर पहले से स्थापित नहीं है तो आर्कजीआईएस 10.0 उत्पादों की स्थापना पायथन 2.6 स्थापित करेगी। स्थापना फ़ाइल Desktop10.pth( Engine10.pthया Server10.pth) को भी जोड़ देगी python26\Lib\site-packages। इस फ़ाइल की सामग्री दो पंक्तियाँ हैं जो आपके सिस्टम के आर्कजीआईएस इंस्टॉलेशन के आर्कपी और बिन फ़ोल्डरों के लिए पथ हैं। इन दो रास्तों को पायथन संस्करण 2.6 में आर्कपी को सफलतापूर्वक आयात करने की आवश्यकता है। आयात विवरण का उपयोग करते समय, पायथन आपके सिस्टम के PYTHONPATHपर्यावरण चर को संदर्भित करता है ताकि मॉड्यूल फ़ाइलों का पता लगाया जा सके। यह चर निर्देशिकाओं की सूची में सेट है।


सुझाव:

यदि आयात करते हुए आर्कपी निम्नलिखित में से कोई त्रुटि उत्पन्न करता है, तो आवश्यक मॉड्यूल नहीं मिल सकते हैं: ImportError: No module named arcpy ImportError: No module named arcgisscripting

इसे संबोधित करने के लिए, python26\Lib\site-packagesफ़ोल्डर में विंडोज एक्सप्लोरर का उपयोग करके ब्राउज़ करें और Desktop10.pthफ़ाइल को जोड़ें या संपादित करें । फ़ाइल में नीचे दर्शाई गई दो पंक्तियाँ होनी चाहिए (यदि वे मेल नहीं खाती हैं तो आपके सिस्टम के पथ के लिए सही):

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

सबको शुक्रीया। जैसे @Aragon ने सुझाव दिया कि मैंने ARCGIS डेस्कटॉप और अजगर दोनों को फिर से स्थापित किया है। Desktop.pth फ़ाइल को जगह में रखें और यह काम किया।
कार्तिक भारद्वाज
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.