# 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 # QGIS environment os.environ["QGIS_PREFIX_PATH"] = "/usr" os.environ["QGIS_HOME"] = "/usr" os.environ["PROJ_LIB"] = "/usr/share/proj" os.environ["GDAL_DATA"] = "/usr/share/gdal" os.environ["QT_PLUGIN_PATH"] = "/usr/lib/x86_64-linux-gnu/qt5/plugins" # QGIS Python plugins (THIS IS THE MISSING PART) sys.path.append("/usr/share/qgis/python") sys.path.append("/usr/share/qgis/python/plugins") # Python modules (from system) sys.path.append("/usr/lib/python3/dist-packages/qgis") 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