PROJ_DATA连接问题

This commit is contained in:
wzy-warehouse
2026-06-20 17:10:42 +08:00
parent 69f45d77b1
commit 66f0d18947
+11 -10
View File
@@ -44,11 +44,21 @@ def _setup_python_path():
def _setup_environment():
"""设置 QGIS 运行所需的环境变量"""
# 自动检测 QGIS 应用目录
# 自动检测 QGIS 应用目录(与 run_qgis.bat 保持一致)
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")
# ★ 必须在任何 DLL 加载前设置 PROJ_DATA,防止 PostgreSQL 的旧 proj.db 干扰
for proj_dir in [
os.path.join(qgis_app_dir, "share", "proj"),
os.path.join(QGIS_ROOT, "share", "proj"),
os.path.join(QGIS_ROOT, "apps", "gdal", "share", "proj"),
]:
if os.path.isdir(proj_dir):
os.environ["PROJ_DATA"] = proj_dir
break
os.environ["QGIS_PREFIX_PATH"] = qgis_app_dir
os.environ["PYTHONUTF8"] = "1"
os.environ["GDAL_FILENAME_IS_UTF8"] = "YES"
@@ -64,15 +74,6 @@ 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"),