QGIS完成初步重构
This commit is contained in:
@@ -78,13 +78,13 @@ def check_dependencies(project_root: Path):
|
||||
],
|
||||
check=True
|
||||
)
|
||||
print("✓ 依赖安装完成(虚拟环境)")
|
||||
print("[OK] 依赖安装完成(虚拟环境)")
|
||||
else:
|
||||
print("✓ 所有依赖已安装(虚拟环境)")
|
||||
|
||||
print("[OK] 所有依赖已安装(虚拟环境)")
|
||||
|
||||
except subprocess.CalledProcessError as e:
|
||||
print(f"✗ 依赖检查/安装失败: {e}")
|
||||
print(f"[FAIL] 依赖检查/安装失败: {e}")
|
||||
sys.exit(1)
|
||||
except Exception as e:
|
||||
print(f"✗ 依赖检查出错: {e}")
|
||||
print(f"[FAIL] 依赖检查出错: {e}")
|
||||
sys.exit(1)
|
||||
|
||||
@@ -32,7 +32,7 @@ def check_environment():
|
||||
if major == 3 and minor == 10:
|
||||
return True
|
||||
else:
|
||||
print(f"✗ Python版本不符合要求!")
|
||||
print(f"[FAIL] Python版本不符合要求!")
|
||||
print(f" 当前版本: {python_version}")
|
||||
print(f" 要求版本: 3.10.x")
|
||||
print(f"\n请使用 Python 3.10 版本运行此项目")
|
||||
|
||||
@@ -70,7 +70,7 @@ class AppLauncher:
|
||||
|
||||
# 启动应用
|
||||
print("\n" + "=" * 50)
|
||||
print("✓ 所有检查通过,准备启动应用...")
|
||||
print("[OK] 所有检查通过,准备启动应用...")
|
||||
print("=" * 50)
|
||||
# 延迟导入logger
|
||||
from app.utils.logger import get_logger
|
||||
@@ -79,7 +79,10 @@ class AppLauncher:
|
||||
start()
|
||||
|
||||
except Exception as e:
|
||||
self.logger.error(f"启动失败: {e}")
|
||||
if self.logger:
|
||||
self.logger.error(f"启动失败: {e}")
|
||||
else:
|
||||
print(f"[FAIL] 启动失败: {e}")
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
|
||||
+10
-10
@@ -22,24 +22,24 @@ async def lifespan(app: FastAPI):
|
||||
get_earthquake_model()
|
||||
logger.info("DBN模型预加载完成")
|
||||
|
||||
# 初始化 QGIS 环境
|
||||
# 检测 QGIS 子进程环境
|
||||
qgis_root = getattr(settings, "QGIS_ROOT", None)
|
||||
if qgis_root:
|
||||
try:
|
||||
from app.services.qgis.qgis_env import init_qgis_env
|
||||
init_qgis_env(qgis_root)
|
||||
logger.info("QGIS 环境初始化完成")
|
||||
from app.services.qgis.qgis_env import is_qgis_available
|
||||
if is_qgis_available(qgis_root):
|
||||
logger.info("QGIS 环境检测通过(子进程模式)")
|
||||
else:
|
||||
logger.warning("QGIS 环境不可用(未找到 Python 3.12 解释器),专题图功能降级")
|
||||
except Exception as e:
|
||||
logger.error(f"QGIS 环境初始化失败(专题图功能不可用): {e}")
|
||||
logger.error(f"QGIS 环境检测失败: {e}")
|
||||
|
||||
yield
|
||||
|
||||
# 清理 QGIS 资源
|
||||
# 清理资源
|
||||
try:
|
||||
from app.services.qgis.qgis_env import cleanup_qgis_env
|
||||
from app.services.qgis.map_service import template_cache
|
||||
template_cache.cleanup()
|
||||
cleanup_qgis_env()
|
||||
from app.api.qgis_map_export import shutdown_thread_pool
|
||||
shutdown_thread_pool()
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
|
||||
@@ -31,14 +31,14 @@ def check_virtualenv(project_root: Path) -> bool:
|
||||
python_exe = venv_path / "bin" / "python3"
|
||||
|
||||
if not venv_path.exists():
|
||||
print(f"\n⚠ 虚拟环境不存在,正在创建...")
|
||||
print(f"\n[WARN] 虚拟环境不存在,正在创建...")
|
||||
try:
|
||||
subprocess.run([sys.executable, "-m", "venv", str(venv_path)], check=True)
|
||||
print("✓ 虚拟环境创建成功")
|
||||
print("[OK] 虚拟环境创建成功")
|
||||
return True # 继续执行后续步骤
|
||||
except subprocess.CalledProcessError as e:
|
||||
print(f"✗ 虚拟环境创建失败: {e}")
|
||||
print(f"[FAIL] 虚拟环境创建失败: {e}")
|
||||
sys.exit(1)
|
||||
else:
|
||||
print(f"✓ 虚拟环境已存在: {venv_path}")
|
||||
print(f"[OK] 虚拟环境已存在: {venv_path}")
|
||||
return True
|
||||
|
||||
Reference in New Issue
Block a user