एक ही पायथन लिपि में आर्कपी और पायरेगस टूल्स का उपयोग करना?


10

मैं एक पायथन स्क्रिप्ट लिखने की कोशिश कर रहा हूं, जिसमें विभिन्न आर्कपी / आर्कजीआईएस कमांड शामिल हैं और इसे ग्रॉस जियोप्रोसेसिंग टूल के साथ जोड़ना चाहते हैं।

दुर्भाग्य से GRASS लाइब्रेरीज़ आयात नहीं करती हैं।

import grass.script as grass

एक त्रुटि में समाप्त होता है:

Traceback (most recent call last):
  File "<interactive input>", line 1, in <module>
ImportError: No module named script

मुझे पता है कि GRASS GIS अपने स्वयं के पायथन संस्करण को स्थापित करता है। वहाँ एक तरीका है ArcGIS और अजगर जीआईएस स्थापना पायथन के संयोजन के लिए? मैंने C: \ Python26 \ ArcGIS10.0 \ Lib \ साइट-संकुल \ फ़ोल्डर में pygrass मॉड्यूल (या जो मैंने सोचा था कि यह हो सकता है) की नकल करने की कोशिश की। मुझे एक अलग त्रुटि संदेश मिल रहा है, लेकिन यह अभी भी काम नहीं कर रहा है।

Traceback (most recent call last):
  File "<interactive input>", line 1, in <module>
  File "C:\Python26\ArcGIS10.0\lib\site-packages\grass\script\__init__.py", line 1, in <module>
    from core   import *
  File "C:\Python26\ArcGIS10.0\lib\site-packages\grass\script\core.py", line 38, in <module>
    gettext.install('grasslibs', os.path.join(os.getenv("GISBASE"), 'locale'))
  File "C:\Python26\ArcGIS10.0\lib\ntpath.py", line 96, in join
    assert len(path) > 0
TypeError: object of type 'NoneType' has no len()

मैं विंडोज 7 64 बिट मशीन पर ArcGIS 10 और GRASS 6.4.2 का उपयोग कर रहा हूं।

जवाबों:


6

सबसे अधिक संभावना है कि पायथन के घास संस्करण ने घास के विशिष्ट साइट-पैकेजों में अपने स्वयं के पायथन बाइंडिंग स्थापित किए हैं। एक गैर-आदर्श विकल्प आयात करने से पहले निम्नलिखित जोड़ना होगा grass.script:

import sys
sys.path.append('\path\to\grass\bindings.py')

यह जो कर रहा है वह अस्थायी रूप से आपके लिए घास जोड़ रहा है $PYTHONPATHताकि आयात के लिए खोज करते समय आपके ArcGIS10.0 पायथन इंस्टॉलेशन को यह मिल जाए।


हे जे, आपके टिप के लिए धन्यवाद। मुझे लगता है कि संबंधित फ़ोल्डर है ... / etc / अजगर / घास / स्क्रिप्ट /। क्या मुझे किसी विशिष्ट .py फ़ाइल या उन सभी का संदर्भ लेना है?
मार्टिन

1
हां, उदाहरण के लिए, यदि मैं किसी अन्य फ़ोल्डर से गाल्ड बाइंडिंग जोड़ना चाहता हूं तो मुझे उपयोग करने की आवश्यकता होगी python_install/site-packages/osgeo/gdal.py। क्या कोई grass.pyस्क्रिप्ट grassनिर्देशिका में मौजूद है ?
जय लौरा

कई .py फाइलें हैं, दुर्भाग्य से कोई भी स्पष्ट नाम के साथ नहीं है जैसे कि घासफ्रेम। मैंने उन सभी का संदर्भ देने की कोशिश की है। दुर्भाग्य से यह अभी भी काम नहीं करता है। :-(
मार्टिन

1
हम्म .... आपके लिए एक और विचार करने की कोशिश: ऐसा लगता है कि आप लिंक किए गए पोस्ट के अनुसार बंडल किए गए अजगर का उपयोग किए बिना GRASS स्थापित कर सकते हैं। शायद पुनः स्थापित करने का प्रयास करें और आर्क अजगर स्थापित करने के लिए GRASS को मजबूर करें? lists.osgeo.org/pipermail/grass-user/2012-June/065178.html
जय लौरा

1
मैंने आपसे pygrass के बारे में पूछा लेकिन शायद यह पोस्ट वैसे भी रूचि पर है। यह गदल के लिए चापलूसी बाँधने के बारे में बात करता है। arcgis.com/home/item.html?id=1eec30bf5fa042a5a22a2227b094db89441
dango
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.