# 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 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" # QT plugin path (Umum untuk Ubuntu/Debian) 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") # Optional but recommended on headless servers sys.path.append("/usr/lib/python3/dist-packages/PyQt5") # QGIS imports 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() Processing.initialize() qgs.processingRegistry().addProvider(QgsNativeAlgorithms()) return qgs