专题图修改虚拟环境

This commit is contained in:
zzw
2026-06-20 21:12:52 +08:00
parent e115041454
commit 15e6c70103
2 changed files with 66 additions and 5 deletions
+5 -5
View File
@@ -379,7 +379,7 @@ def _generate_batch_maps(models: list, config: dict, disaster_time: str) -> None
import json
import subprocess
import tempfile
from app.services.qgis.qgis_env import build_qgis_command
from app.services.qgis.qgis_env import build_qgis_command, build_clean_subprocess_env
try:
logger.info(f"[批量产图] 开始: {len(models)} 张专题图, batch={disaster_time}")
@@ -409,10 +409,10 @@ def _generate_batch_maps(models: list, config: dict, disaster_time: str) -> None
cmd,
capture_output=True,
timeout=600, # 10 分钟超时(15 张模板 × ~40s/张 ≈ 600s
# 不传 env —— 让子进程继承父进程环境,
# runner 内部 _setup_environment() 会设置 QGIS 所需变量。
# build_qgis_env() 设置的 PYTHONPATH/PATH/QGIS_PREFIX_PATH
# QGIS DLL 加载冲突,导致 0xC0000005 崩溃
env=build_clean_subprocess_env(),
# 使用干净的环境变量:移除 venv 的 PYTHONPATH/VIRTUAL_ENV/PATH 污染,
# 避免 QGIS Python 3.12 的 DLL 加载被干扰导致 0xC0000005 崩溃。
# QGIS Python 3.12 仅通过 sys.path 即可正确加载所有模块和 DLL
)
finally:
try: