From 69f45d77b1ec9d8603f60a85b3f31b8e16263e40 Mon Sep 17 00:00:00 2001 From: wzy-warehouse <18135009705@163.com> Date: Sat, 20 Jun 2026 17:08:49 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A1=AC=E7=BC=96=E7=A0=81=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/services/qgis/qgis_runner.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/app/services/qgis/qgis_runner.py b/app/services/qgis/qgis_runner.py index 0b4d243..b45abb9 100644 --- a/app/services/qgis/qgis_runner.py +++ b/app/services/qgis/qgis_runner.py @@ -44,7 +44,11 @@ def _setup_python_path(): def _setup_environment(): """设置 QGIS 运行所需的环境变量""" + # 自动检测 QGIS 应用目录 qgis_app_dir = os.path.join(QGIS_ROOT, "apps", "qgis-ltr") + if not os.path.isdir(qgis_app_dir): + qgis_app_dir = os.path.join(QGIS_ROOT, "apps", "qgis") + os.environ["QGIS_PREFIX_PATH"] = qgis_app_dir os.environ["PYTHONUTF8"] = "1" os.environ["GDAL_FILENAME_IS_UTF8"] = "YES" @@ -60,6 +64,15 @@ def _setup_environment(): if os.path.isdir(gdal_data): os.environ["GDAL_DATA"] = gdal_data + # 强制使用 QGIS 自带的 PROJ,避免 PostgreSQL/PostGIS 的旧 proj.db 干扰 + for proj_dir in [ + os.path.join(qgis_app_dir, "share", "proj"), + os.path.join(QGIS_ROOT, "share", "proj"), + ]: + if os.path.isdir(proj_dir): + os.environ["PROJ_DATA"] = proj_dir + break + import ctypes _dll_dirs = [ os.path.join(qgis_app_dir, "bin"),