[FOSSGIS-Talk] QGIS Python-Konsole "Indentation Error", Python-Editor kein "Indentation Error"

Bernhard Ströbl nospam at stroweb.de
Mo Sep 26 15:56:45 CEST 2022


Hallo Christiane,

ich kann Dir nicht sagen, was das Problem ist, ich weiß nur, dass ich in meinen Skripten alle Einrückungen mit Leerzeichen mache (bzw. Tabs beim Speichern in Leerzeichen umwandeln lasse) und seither keine Indentation Errors beim Ausführen bekomme (ich führe sie allerdings nicht über die Konsole aus, sondern es handelt sich meistens um Plugins).
Grüße
Bernhard

> Chr. Enderle via FOSSGIS-Talk-Liste <fossgis-talk-liste at fossgis.de> hat am 26.09.2022 13:43 CEST geschrieben:
> 
>  
> -- 
> ....................................................................
> FOSSGIS Veranstaltungen
> https://www.fossgis.de/news/fossgis-events/
> 
> FOSSGIS e.V, der Verein zur Förderung von Freier Software aus dem
> GIS-Bereich und Freier Geodaten!
> https://www.fossgis.de/             https://twitter.com/FOSSGIS_Verein
> 
> ____________________________________________________________________
> FOSSGIS-Talk-Liste mailing list
> FOSSGIS-Talk-Liste at fossgis.de
> https://lists.fossgis.de/mailman/listinfo/fossgis-talk-liste
> Hallo Liste,
> 
> mir ist aufgefallen, dass die Python-Konsole in QGIS (3.22) bei 
> Leerzeilen im Code "IndentationError" meldet, während der Python-Editor 
> dasselbe Script ohne Fehlermeldung verarbeitet.
> 
> Es handelt sich um einzelne Leerzeilen gefolgt von einem Kommentar, die 
> ich z.B. im Verlauf einer for-Schleife wegen der Übersichtlichkeit 
> eingefügt habe. Einen Beispiel-Ausschnitt aus dem Script siehe unten.  
> In dem Beispiel haben die Leerzeilen keine Einrückung. Ich füge das 
> gesamte Script per copy & paste in die Konsole bzw. den Editor ein. In 
> der Konsole führt es zur genannten Fehlermeldung. Wenn das Script 
> dagegen aus dem Editor heraus gestartet wird, läuft es fehlerfrei.
> 
> Gibt es dafür eine Erklärung?
> 
> Wo im Code Einrückungen nötig sind, sind sie alle mit Tabulator(en) 
> gesetzt, keine Leerzeichen.
> 
> -------------------------------------------------------------------------------------------
> 
> # Iterating over the input layer :
> for m in municip.getFeatures():
>      inh_center = m['EWZ']
> 
> # central municipalites with 0 inhabitants must be excluded; the value 
> of "center_pos" will be set to -1.
>      if inh_center == 0:
>          center_pos = -1
>          dict = {m.fieldNameIndex('center_pos'):center_pos}
>          municip.dataProvider().changeAttributeValues({m.id(): dict})
> 
> # Extract by location:
>      else:
>          key = m['AGS']
>          municip.selectByExpression('\"AGS\" = ' + str(key), 
> QgsVectorLayer.SetSelection)
>          result = 
> processing.run("qgis:extractbylocation",{'INPUT':QgsProcessingFeatureSourceDefinition(municip.id(),False),'PREDICATE':4,'INTERSECT':QgsProcessingFeatureSourceDefinition(municip.id(),True),'OUTPUT':'memory:'})
>          extracted = result['OUTPUT']
>          count_all = extracted.featureCount()
>          countsmall = 0
> 
> ----------------------------------------------------------------------------------------
> 
> Viele Grüße,
> 
> Christiane
> 
> 
> -- 
> Christiane Enderle, MSc
> Philipps-Universität Marburg
> Fachbereich Geographie
> Deutschhausstr. 10
> 35037 Marburg
> Tel. +49 (0)6421-2822179
> Fax +49 (0)6421-2828950


Mehr Informationen über die Mailingliste FOSSGIS-Talk-Liste