प्रसंस्करण .runalg () फेंकता है "TypeError: ऐसी कक्षाएं पकड़ना जो BaseException से विरासत में नहीं आती हैं"


11

हाय सब मैं किसी तरह से PyQGIS के साथ नया हूँ और मैं सफलता के बिना QGIS 3.0 में एक स्क्रिप्ट चलाने की कोशिश कर रहा हूं (यह 2.18 में प्रीफेक्टली रन हुआ) और हमेशा एक ही त्रुटि मिलती है:

विशेषता: मॉड्यूल 'प्रसंस्करण' में कोई विशेषता नहीं है 'रनग्लग' उपरोक्त अपवाद से निपटने के दौरान, एक और अपवाद हुआ: ट्रैसबैक (सबसे हालिया कॉल अंतिम): फ़ाइल "C: \ PROGRA ~ 1 \" QGIS3 ~ 1.0 एप्लिकेशन \ Python36 \ lib \ code.py ", लाइन 91, रनकोड एक्जीक्यूट (कोड, सेल्फलोकल) फाइल" ", लाइन 8, TypeError में: ऐसी क्लासेस को पकड़ना जो BaseException से विरासत में नहीं आते हैं, अनुमति नहीं है

क्या इसका PYTHONPATH के साथ कुछ करना है? टाइपिंग करते समय मैं एल्गोरिदम की सूची भी नहीं देख सकता: प्रसंस्करण.लिगलिस्ट ()

जवाबों:


10

यह मूल प्रश्न का उत्तर नहीं है, लेकिन एक टिप्पणी में अनुवर्ती प्रश्न ("इसके अलावा मैं एल्गोरिदम की सूची और विकल्प कैसे देख सकता हूं?")।

QGIS 3 में, प्रसंस्करण एल्गोरिदम को QGIS पायथन कंसोल (पायथन 3) में सूचीबद्ध किया जा सकता है (देखें https://gis.stackexchange.com/a/274902/22646 और https://gis.stackexchange.com/a/ 274874/22646 ):

QgsApplication.processingRegistry().algorithms()

नाम (आईडी) सूचीबद्ध करने के लिए:

for alg in QgsApplication.processingRegistry().algorithms(): print(alg.id())

एक एल्गोरिथ्म के लिए सहायता प्राप्त करना (इनपुट मापदंडों और आउटपुट सहित):

processing.algorithmHelp("qgis:union")

वहाँ भी:

processing.algs.help.shortHelp.keys()
print("\n".join(processing.algs.help.shortHelp.keys()))

लेकिन यह उदाहरण के लिए गदल और घास के एल्गोरिदम को शामिल नहीं करता है।


QGIS दस्तावेज़ीकरण अब अपडेट कर दिया गया है (देखें docs.qgis.org/testing/en/docs/user_manual/processing/… )।
होवार्ड टेवेइट

14

QGIS 3 में, उपयोग करें processing.run

उदाहरण के लिए:

QGIS 2.x processing.runalg('gdalogr:convertformat', ...

QGIS 3.0 processing.run('gdal:convertformat', ...


यह पूरी तरह से ठीक काम करता है। इसके अलावा, मैं एल्गोरिदम की सूची और विकल्प कैसे देख सकता हूं? मैंने प्रसंस्करण की कोशिश की है। सूची () और प्रसंस्करण.सूची () लेकिन दोनों एक समान त्रुटि फेंकते हैं।
LE_Geomatica
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.