processing.runalg () “TypeError: BaseException öğesinden devralmayan sınıfları yakalamaya izin verilmiyor” atar


11

Herkese merhaba PyQGIS ile yeni bir şekilde yeni biriyim ve QGIS 3.0'da bir senaryoyu başarılı olmadan çalıştırmaya çalışıyorum (vali 2.18'de koştu) ve her zaman aynı hatayı alıyorum:

AttributeError: 'işleme' modülünün 'runalg' özelliği yok Yukarıdaki istisna işlenirken başka bir istisna oluştu: Geri izleme (en son çağrı son): Dosya "C: \ PROGRA ~ 1 \ QGIS3 ~ 1.0 \ apps \ Python36 \ lib \ code.py ", satır 91, runcode exec (kod, self.locals) Dosya" ", satır 8, TypeError: BaseException öğesinden devralmayan sınıfları yakalamaya izin verilmiyor

Bunun PYTHONPATH ile bir ilgisi var mı? Yazarken algoritma listesini bile göremiyorum: işleme.alglist ()

Yanıtlar:


10

Bu orijinal sorunun cevabı değil, bir yorumdaki takip sorusu ("Ayrıca algoritmaların listesini ve seçeneklerini nasıl görebilirim?").

QGIS 3'te, işleme algoritmaları (bkz. Https://gis.stackexchange.com/a/274902/22646 ve https://gis.stackexchange.com/a/ ) kullanılarak QGIS Python konsolunda (Python 3) listelenebilir. 274874/22646 ):

QgsApplication.processingRegistry().algorithms()

Adları (Kimlikler) listelemek için:

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

Bir algoritma için yardım alma (giriş parametreleri ve çıktı dahil):

processing.algorithmHelp("qgis:union")

Ayrıca birde şu var:

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

Ancak, örneğin gdal ve çimden algoritmalar içermiyor gibi görünüyor.


QGIS belgeleri şimdi güncellendi (bkz. Docs.qgis.org/testing/en/docs/user_manual/processing/… ).
Håvard Tveite

14

QGIS 3'te kullanın processing.run.

Örneğin:

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

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


Mükemmel çalışıyor. Ayrıca algoritmaların listesini ve seçeneklerini nasıl görebilirim? Processing.alglist () ve processing.list () denedim ama her ikisi de benzer bir hata atmak.
LE_Geomatica
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.