From 6957393caf0b0ebcbee4798b8ebf37276a195a5a Mon Sep 17 00:00:00 2001 From: DmsAnhr Date: Tue, 25 Nov 2025 16:12:20 +0700 Subject: [PATCH] update qgis bootstrap --- qgis_bootstrap.py | 67 ++++++++++------------------------------------- 1 file changed, 14 insertions(+), 53 deletions(-) diff --git a/qgis_bootstrap.py b/qgis_bootstrap.py index d71b7b5..0e0d1e5 100644 --- a/qgis_bootstrap.py +++ b/qgis_bootstrap.py @@ -1,45 +1,3 @@ -# import os -# import sys - -# QGIS_APP = "/Applications/QGIS-LTR.app/Contents" -# QGIS_PREFIX = f"{QGIS_APP}/Resources" - -# # ==== FIX VERY IMPORTANT ==== -# os.environ["QGIS_PREFIX_PATH"] = QGIS_PREFIX -# os.environ["PROJ_LIB"] = f"{QGIS_PREFIX}/proj" -# os.environ["GDAL_DATA"] = f"{QGIS_PREFIX}/gdal" -# os.environ["QT_PLUGIN_PATH"] = f"{QGIS_PREFIX}/plugins" -# # ============================= - -# os.environ["QT_QPA_PLATFORM"] = "offscreen" - -# # Python path -# sys.path.append(f"{QGIS_PREFIX}/python") -# sys.path.append(f"{QGIS_PREFIX}/python/plugins") - -# from qgis.core import QgsApplication -# from qgis.analysis import QgsNativeAlgorithms - -# import processing -# from processing.core.Processing import Processing - -# def start_qgis(): -# qgs = QgsApplication([], False) -# qgs.initQgis() - -# # === WAJIB: initialize processing === -# Processing.initialize() -# qgs.processingRegistry().addProvider(QgsNativeAlgorithms()) - -# return qgs - - - - - - - - import os import sys @@ -60,20 +18,23 @@ os.environ["QT_PLUGIN_PATH"] = "/usr/lib/x86_64-linux-gnu/qt5/plugins" # Put QGIS bin into PATH os.environ["PATH"] = "/usr/bin:" + os.environ.get("PATH", "") -# Python paths -sys.path.append("/usr/lib/python3/dist-packages") -sys.path.append("/usr/lib/python3/dist-packages/qgis") -sys.path.append("/usr/lib/python3/dist-packages/qgis/plugins") -sys.path.append("/usr/lib/qgis") -sys.path.append("/usr/lib/qgis/plugins") +# Python path milik QGIS (WAJIB ditambahkan SEBELUM import processing) +QGIS_PYTHON_PATHS = [ + "/usr/lib/python3/dist-packages", + "/usr/lib/python3/dist-packages/qgis", + "/usr/lib/python3/dist-packages/qgis/plugins", + "/usr/lib/qgis", + "/usr/lib/qgis/plugins", + "/usr/lib/python3/dist-packages/PyQt5", +] -# Optional but recommended on headless servers -sys.path.append("/usr/lib/python3/dist-packages/PyQt5") +for p in QGIS_PYTHON_PATHS: + if p not in sys.path: + sys.path.insert(0, p) -# QGIS imports +# Setelah sys.path benar → Baru import QGIS & Processing from qgis.core import QgsApplication from qgis.analysis import QgsNativeAlgorithms - import processing from processing.core.Processing import Processing @@ -85,4 +46,4 @@ def start_qgis(): Processing.initialize() qgs.processingRegistry().addProvider(QgsNativeAlgorithms()) - return qgs + return qgs \ No newline at end of file