processing.runalg()は「TypeError:BaseExceptionから継承しないクラスのキャッチは許可されていません」をスローします


11

皆さん、こんにちは。PyQGISは初めての方で、QGIS 3.0でスクリプトを実行しようとしましたが、成功せず(完全に2.18で実行されました)、常に同じエラーが発生します。

AttributeError:モジュール 'processing'に属性 'runalg'がありません上記の例外の処理中に、別の例外が発生しました:トレースバック(最後の最新の呼び出し):ファイル "C:\ PROGRA〜1 \ QGIS3〜1.0 \ apps \ Python36 \ lib \ code.py "、91行目、runco​​de exec(code、self.locals)ファイル" "、8行目、TypeError:BaseExceptionから継承しないクラスのキャッチは許可されていません

これはPYTHONPATHと関係がありますか?次のように入力すると、アルゴリズムのリストも表示されません:processing.alglist()

回答:


10

これは、元の質問に対する回答ではなく、コメントのフォローアップ質問に対する回答です(「アルゴリズムのリストとオプションをどのようにして確認することもできますか?」)。

QGIS 3では、処理アルゴリズムをQGIS Pythonコンソール(Python 3)にリストできます(/gis//a/274902/22646および/gis//a/を参照)。 274874/22646):

QgsApplication.processingRegistry().algorithms()

名前(ID)をリストするには:

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()))

しかし、gdalやgrassなどのアルゴリズムは含まれていないようです。


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', ...


それは完全に正常に動作します。また、アルゴリズムのリストとオプションをどのように確認できますか?processing.alglist()とprocessing.list()を試しましたが、どちらも同様のエラーをスローします。
LE_Geomatica 2018年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.