diff --git a/qgis_bootstrap.py b/qgis_bootstrap.py index 0e0d1e5..9c606f3 100644 --- a/qgis_bootstrap.py +++ b/qgis_bootstrap.py @@ -1,40 +1,66 @@ +# 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 # ==== Linux QGIS installation prefix ==== -QGIS_PREFIX = "/usr" +QGIS_PREFIX = "/usr/bin/qgis" -# QGIS Environment os.environ["QGIS_PREFIX_PATH"] = QGIS_PREFIX -os.environ["QGIS_HOME"] = QGIS_PREFIX - -# GDAL + PROJ os.environ["PROJ_LIB"] = "/usr/share/proj" os.environ["GDAL_DATA"] = "/usr/share/gdal" +os.environ["QT_PLUGIN_PATH"] = "/usr/lib/qt/plugins" -# QT plugin path (Umum untuk Ubuntu/Debian) -os.environ["QT_PLUGIN_PATH"] = "/usr/lib/x86_64-linux-gnu/qt5/plugins" +# Python path +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") -# Put QGIS bin into PATH -os.environ["PATH"] = "/usr/bin:" + os.environ.get("PATH", "") -# 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", -] - -for p in QGIS_PYTHON_PATHS: - if p not in sys.path: - sys.path.insert(0, p) - -# 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 @@ -46,4 +72,4 @@ def start_qgis(): Processing.initialize() qgs.processingRegistry().addProvider(QgsNativeAlgorithms()) - return qgs \ No newline at end of file + return qgs