process.runache () ném ra Loại TypeError: bắt các lớp không kế thừa từ BaseException không được phép


11

Xin chào mọi người Tôi bằng một cách nào đó mới với PyQGIS và tôi đã cố chạy một kịch bản trong QGIS 3.0 nhưng không thành công (nó hoàn toàn chạy trong 2.18) và luôn gặp lỗi tương tự:

AttributionError: mô-đun 'đang xử lý' không có thuộc tính 'runache' Trong quá trình xử lý ngoại lệ trên, một ngoại lệ khác đã xảy ra: TracBack (cuộc gọi gần đây nhất) code.py ", dòng 91, trong runcode exec (code, self.locals) Tệp" ", dòng 8, trong TypeError: bắt các lớp không kế thừa từ BaseException không được phép

Điều này có liên quan gì đến PYTHONPATH không? Tôi thậm chí không thể nhìn thấy danh sách các thuật toán khi gõ: process.alglist ()

Câu trả lời:


10

Đây không phải là câu trả lời cho câu hỏi ban đầu, mà là câu hỏi tiếp theo trong một bình luận ("Ngoài ra làm thế nào tôi có thể xem danh sách và các tùy chọn của thuật toán?").

Trong QGIS 3, các thuật toán xử lý có thể được liệt kê trong bảng điều khiển Python của Python (Python 3) bằng cách sử dụng (xem /gis//a/274902/22646/gis//a/ 274874/22646 ):

QgsApplication.processingRegistry().algorithms()

Để liệt kê tên (ID):

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

Nhận trợ giúp cho một thuật toán (bao gồm các tham số đầu vào và đầu ra):

processing.algorithmHelp("qgis:union")

Ngoài ra còn có:

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

Nhưng nó dường như không bao gồm các thuật toán từ gdal và cỏ chẳng hạn.


Tài liệu của QGIS hiện đã được cập nhật (xem docs.qgis.org/testing/en/docs/user_manual/ Xử lý / lỗi ).
Håvard Tveite

14

Trong QGIS 3, sử dụng processing.run.

Ví dụ:

Quốc tế 2.x processing.runalg('gdalogr:convertformat', ...

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


Nó hoạt động hoàn toàn tốt. Ngoài ra làm thế nào tôi có thể xem danh sách và các tùy chọn của thuật toán? Tôi đã thử xử lý. Achlist () và process.list () nhưng cả hai đều đưa ra một lỗi tương tự.
LE_Geomatica
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.