49 lines
1.3 KiB
Python
49 lines
1.3 KiB
Python
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 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
|
|
|
|
|
|
def start_qgis():
|
|
qgs = QgsApplication([], False)
|
|
qgs.initQgis()
|
|
|
|
Processing.initialize()
|
|
qgs.processingRegistry().addProvider(QgsNativeAlgorithms())
|
|
|
|
return qgs |