processing.runalg () renvoie "TypeError: intercepter les classes qui n'héritent pas de BaseException n'est pas autorisé"


11

Salut tout le monde, je suis en quelque sorte nouveau avec PyQGIS et j'ai essayé d'exécuter un script dans QGIS 3.0 sans succès (il fonctionnait de préférence en 2.18) et j'ai toujours la même erreur:

AttributeError: le module 'processing' n'a pas d'attribut 'runalg' Lors de la gestion de l'exception ci-dessus, une autre exception s'est produite: Traceback (dernier appel le plus récent): Fichier "C: \ PROGRA ~ 1 \ QGIS3 ~ 1.0 \ apps \ Python36 \ lib \ code.py ", ligne 91, dans runcode exec (code, self.locals) Fichier" ", ligne 8, dans TypeError: la capture de classes qui n'héritent pas de BaseException n'est pas autorisée

Est-ce que cela a quelque chose à voir avec PYTHONPATH? Je ne peux même pas voir la liste des algorithmes lors de la frappe: processing.alglist ()

Réponses:


10

Ce n'est pas une réponse à la question d'origine, mais à une question de suivi dans un commentaire ("Aussi comment puis-je voir la liste et les options des algorithmes?").

Dans QGIS 3, les algorithmes de traitement peuvent être répertoriés dans la console QGIS Python (Python 3) à l'aide de (voir https://gis.stackexchange.com/a/274902/22646 et https://gis.stackexchange.com/a/ 274874/22646 ):

QgsApplication.processingRegistry().algorithms()

Pour répertorier les noms (ID):

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

Obtenir de l'aide pour un algorithme (y compris les paramètres d'entrée et de sortie):

processing.algorithmHelp("qgis:union")

Il y a aussi:

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

Mais il ne semble pas inclure d'algorithmes provenant par exemple de gdal et de grass.


La documentation QGIS a maintenant été mise à jour (voir docs.qgis.org/testing/en/docs/user_manual/processing/… ).
Håvard Tveite

14

Dans QGIS 3, utilisez processing.run.

Par exemple:

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

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


Cela fonctionne parfaitement bien. Comment puis-je voir la liste et les options des algorithmes? J'ai essayé processing.alglist () et processing.list () mais les deux lancent une erreur similaire.
LE_Geomatica
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.