Tôi có một bản sao của dự án github của QGIS tại địa phương, nó đã được vài tháng nhưng tôi đã có thể tìm thấy nơi này đã thay đổi.
Thật đáng để kiểm tra danh sách các thay đổi API , trong đó đề cập đến điều này
dataobjects.getLayerFromString () đã bị xóa. Thay vào đó, hãy sử dụng QssProcessingUtils.mapLayerFromString ().
Sử dụng chú thích dòng git, tôi có thể theo dõi sự thay đổi này được thực hiện vài tháng trước ...
có vẻ như một vài phương thức (bao gồm getObject ) đã được cấu trúc lại và thay thế bằng một phương thức getLayerFromString ()
def getLayerFromString(string, forceLoad=True):
"""Returns an object (layer/table) given a source definition.
if forceLoad is true, it tries to load it if it is not currently open
Otherwise, it will return the object only if it is loaded in QGIS.
"""
...
Nhưng kể từ đó, nó đã được chuyển sang QssProcessingUtils .
Vì vậy, bạn có thể thử sử dụng QgsProcessingUtils.mapLayerFromString()
Nếu sử dụng QGIS 2.x, bạn vẫn có thể sử dụng getObject () như trước đây (có thể kiểm tra bằng cách sử dụng print(processing.__dict__['getObject'])