Fix: AttributeError in OCRProcessor and refactor all relative imports to absolute
This commit is contained in:
@@ -21,7 +21,7 @@ from app.core.utils.file_utils import (
|
||||
save_json
|
||||
)
|
||||
from app.config.settings import ConfigManager
|
||||
from .baidu_ocr import BaiduOCRClient
|
||||
from app.core.ocr.baidu_ocr import BaiduOCRClient
|
||||
|
||||
logger = get_logger(__name__)
|
||||
|
||||
@@ -112,14 +112,13 @@ class OCRProcessor:
|
||||
"""
|
||||
self.config = config or ConfigManager()
|
||||
self.ocr_client = None
|
||||
self._ensure_ocr_client()
|
||||
|
||||
# 修复ConfigParser对象没有get_path方法的问题
|
||||
try:
|
||||
# 获取输入和输出目录
|
||||
self.input_folder = config.get_path('Paths', 'input_folder', fallback='data/input', create=True) if hasattr(config, 'get_path') else os.path.abspath('data/input')
|
||||
self.output_folder = config.get_path('Paths', 'output_folder', fallback='data/output', create=True) if hasattr(config, 'get_path') else os.path.abspath('data/output')
|
||||
self.temp_folder = config.get_path('Paths', 'temp_folder', fallback='data/temp', create=True) if hasattr(config, 'get_path') else os.path.abspath('data/temp')
|
||||
self.input_folder = self.config.get_path('Paths', 'input_folder', fallback='data/input', create=True) if hasattr(self.config, 'get_path') else os.path.abspath('data/input')
|
||||
self.output_folder = self.config.get_path('Paths', 'output_folder', fallback='data/output', create=True) if hasattr(self.config, 'get_path') else os.path.abspath('data/output')
|
||||
self.temp_folder = self.config.get_path('Paths', 'temp_folder', fallback='data/temp', create=True) if hasattr(self.config, 'get_path') else os.path.abspath('data/temp')
|
||||
|
||||
# 确保目录存在
|
||||
os.makedirs(self.input_folder, exist_ok=True)
|
||||
@@ -127,13 +126,13 @@ class OCRProcessor:
|
||||
os.makedirs(self.temp_folder, exist_ok=True)
|
||||
|
||||
# 获取文件类型列表
|
||||
allowed_extensions_str = config.get('File', 'allowed_extensions', fallback='.jpg,.jpeg,.png,.bmp')
|
||||
allowed_extensions_str = self.config.get('File', 'allowed_extensions', fallback='.jpg,.jpeg,.png,.bmp')
|
||||
self.file_types = [ext.strip() for ext in allowed_extensions_str.split(',') if ext.strip()]
|
||||
if not self.file_types:
|
||||
self.file_types = ['.jpg', '.jpeg', '.png', '.bmp', '.gif', '.tif', '.tiff']
|
||||
|
||||
# 初始化OCR客户端
|
||||
self.ocr_client = BaiduOCRClient(self.config)
|
||||
self._ensure_ocr_client()
|
||||
|
||||
# 记录实际路径
|
||||
logger.info(f"使用输入目录: {os.path.abspath(self.input_folder)}")
|
||||
@@ -153,6 +152,11 @@ class OCRProcessor:
|
||||
logger.error(f"初始化OCRProcessor失败: {e}")
|
||||
raise
|
||||
|
||||
def _ensure_ocr_client(self):
|
||||
"""确保OCR客户端已初始化"""
|
||||
if self.ocr_client is None:
|
||||
self.ocr_client = BaiduOCRClient(self.config)
|
||||
|
||||
def _load_processed_files(self) -> Dict[str, str]:
|
||||
"""
|
||||
加载已处理的文件记录
|
||||
|
||||
Reference in New Issue
Block a user