Compare commits
3 Commits
943f32cafd
...
ca14e931f8
| Author | SHA1 | Date | |
|---|---|---|---|
| ca14e931f8 | |||
| 4fb65f7f53 | |||
| f3c38bbb57 |
+11
-9
@@ -19,13 +19,15 @@ DBN_CONFIG_DIR = CONFIG_DIR / "dbn"
|
||||
|
||||
def get_logger(name: str = "algorithm"):
|
||||
"""
|
||||
获取日志记录器的便捷函数
|
||||
|
||||
Args:
|
||||
name: 日志名称
|
||||
|
||||
Returns:
|
||||
logging.Logger 实例
|
||||
获取日志记录器。主进程用 loguru,QGIS 子进程回退到标准 logging。
|
||||
"""
|
||||
from app.utils.logger import get_logger as _get_logger
|
||||
return _get_logger(name, str(LOG_DIR))
|
||||
try:
|
||||
from app.utils.logger import get_logger as _get_logger
|
||||
return _get_logger(name, str(LOG_DIR))
|
||||
except ImportError:
|
||||
import logging
|
||||
logging.basicConfig(
|
||||
level=logging.INFO,
|
||||
format="%(asctime)s [%(threadName)s] %(levelname)-5s %(name)s - %(message)s",
|
||||
)
|
||||
return logging.getLogger(name)
|
||||
|
||||
+43
-12
@@ -1,23 +1,54 @@
|
||||
@echo off
|
||||
REM ============================================================
|
||||
REM QGIS 子进程启动脚本(Windows)
|
||||
REM 需要设置 QGIS_ROOT 环境变量指向 QGIS 安装目录
|
||||
REM 自动检测 QGIS 安装结构,支持 qgis-ltr/qgis + Python312/Python39
|
||||
REM ============================================================
|
||||
if "%QGIS_ROOT%"=="" (
|
||||
echo [ERROR] QGIS_ROOT 环境变量未设置
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
set "QGIS_APP_DIR=%QGIS_ROOT%\apps\qgis-ltr"
|
||||
set "PYTHONHOME=%QGIS_ROOT%\apps\Python312"
|
||||
set "PYTHONPATH=%QGIS_APP_DIR%\python"
|
||||
set "QGIS_PREFIX_PATH=%QGIS_APP_DIR%"
|
||||
set "QT_PLUGIN_PATH=%QGIS_APP_DIR%\qtplugins;%QGIS_ROOT%\apps\Qt5\plugins"
|
||||
if "%QGIS_ROOT%"=="" goto :no_root
|
||||
if not exist "%QGIS_ROOT%" goto :no_root_dir
|
||||
|
||||
REM --- 检测 QGIS 应用目录 ---
|
||||
set "QGIS_APP=%QGIS_ROOT%\apps\qgis-ltr"
|
||||
if not exist "%QGIS_APP%" set "QGIS_APP=%QGIS_ROOT%\apps\qgis"
|
||||
if not exist "%QGIS_APP%" goto :no_qgis_app
|
||||
|
||||
REM --- 检测 Python 目录 ---
|
||||
set "PY=%QGIS_ROOT%\apps\Python312"
|
||||
if not exist "%PY%" set "PY=%QGIS_ROOT%\apps\Python39"
|
||||
if not exist "%PY%" set "PY=%QGIS_ROOT%\apps\Python310"
|
||||
if not exist "%PY%" set "PY=%QGIS_ROOT%\apps\Python311"
|
||||
if not exist "%PY%" goto :no_python
|
||||
|
||||
REM --- 设置环境 ---
|
||||
set "PYTHONHOME=%PY%"
|
||||
set "PYTHONPATH=%QGIS_APP%\python"
|
||||
set "QGIS_PREFIX_PATH=%QGIS_APP%"
|
||||
set "QT_PLUGIN_PATH=%QGIS_APP%\qtplugins;%QGIS_ROOT%\apps\Qt5\plugins"
|
||||
set "GDAL_DATA=%QGIS_ROOT%\apps\gdal\share\gdal"
|
||||
set "PYTHONUTF8=1"
|
||||
set "GDAL_FILENAME_IS_UTF8=YES"
|
||||
set "VSI_CACHE=TRUE"
|
||||
set "VSI_CACHE_SIZE=1000000"
|
||||
set "PATH=%QGIS_APP_DIR%\bin;%QGIS_ROOT%\apps\Qt5\bin;%QGIS_ROOT%\apps\gdal\lib;%PATH%"
|
||||
set "PATH=%QGIS_APP%\bin;%QGIS_ROOT%\apps\Qt5\bin;%QGIS_ROOT%\apps\gdal\lib;%PATH%"
|
||||
REM 强制使用 QGIS 自带的 PROJ,避免 PostgreSQL/PostGIS 的旧 proj.db 干扰
|
||||
if exist "%QGIS_ROOT%\share\proj" set "PROJ_DATA=%QGIS_ROOT%\share\proj"
|
||||
|
||||
"%PYTHONHOME%\python3.exe" %*
|
||||
REM --- 启动 ---
|
||||
"%PY%\python3.exe" %*
|
||||
exit /b %ERRORLEVEL%
|
||||
|
||||
:no_root
|
||||
echo [ERROR] QGIS_ROOT 环境变量未设置
|
||||
exit /b 1
|
||||
|
||||
:no_root_dir
|
||||
echo [ERROR] QGIS_ROOT 目录不存在: %QGIS_ROOT%
|
||||
exit /b 1
|
||||
|
||||
:no_qgis_app
|
||||
echo [ERROR] 未找到 QGIS 应用目录
|
||||
exit /b 1
|
||||
|
||||
:no_python
|
||||
echo [ERROR] 未找到 QGIS Python 目录
|
||||
exit /b 1
|
||||
|
||||
Reference in New Issue
Block a user