diff --git a/python_core/__init__.py b/python_core/__init__.py index 3b44106..349d461 100644 --- a/python_core/__init__.py +++ b/python_core/__init__.py @@ -9,13 +9,7 @@ for the MixVideo V2 application. __version__ = "2.0.0" __author__ = "MixVideo Team" -from .video_processing import VideoProcessor -from .audio_processing import AudioProcessor -from .services import FileManager, TaskQueue +# 只导出确实存在且需要的模块 +# 避免在包初始化时导入所有子模块,减少依赖问题 -__all__ = [ - "VideoProcessor", - "AudioProcessor", - "FileManager", - "TaskQueue" -] +__all__ = [] diff --git a/python_core/ai_video/api_client.py b/python_core/ai_video/api_client.py index d044fcb..c649f06 100644 --- a/python_core/ai_video/api_client.py +++ b/python_core/ai_video/api_client.py @@ -13,18 +13,8 @@ from typing import Dict, Any, Optional, Callable import sys sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) - -try: - from config import settings - from utils import setup_logger -except ImportError: - # Fallback for when running as script - import logging - settings = type('Settings', (), {'LOG_LEVEL': 'INFO'})() - def setup_logger(name): - logging.basicConfig(level=logging.INFO) - return logging.getLogger(name) - +from ..config import settings +from ..utils import setup_logger logger = setup_logger(__name__) class APIClient: diff --git a/python_core/ai_video/cloud_storage.py b/python_core/ai_video/cloud_storage.py index 8d39d34..19f01aa 100644 --- a/python_core/ai_video/cloud_storage.py +++ b/python_core/ai_video/cloud_storage.py @@ -12,19 +12,8 @@ import mimetypes from typing import Dict, Any, Optional import sys -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) - -try: - from config import settings - from utils import setup_logger -except ImportError: - # Fallback for when running as script - import logging - settings = type('Settings', (), {'LOG_LEVEL': 'INFO'})() - def setup_logger(name): - logging.basicConfig(level=logging.INFO) - return logging.getLogger(name) - +from ..config import settings +from ..utils import setup_logger logger = setup_logger(__name__) class CloudStorage: diff --git a/python_core/ai_video/video_generator.py b/python_core/ai_video/video_generator.py index 6874400..ec9da5d 100644 --- a/python_core/ai_video/video_generator.py +++ b/python_core/ai_video/video_generator.py @@ -11,8 +11,11 @@ import os import glob from typing import Dict, Any, List, Optional, Callable import sys + +# 使用相对导入(现在包结构简化了,应该可以正常工作) from ..config import settings from ..utils import setup_logger +# 导入同目录下的模块 from .cloud_storage import CloudStorage from .api_client import APIClient from .jsonrpc import create_response_handler, create_progress_reporter, JSONRPCError diff --git a/python_core/audio_processing/core.py b/python_core/audio_processing/core.py index a0c3c53..6c01fab 100644 --- a/python_core/audio_processing/core.py +++ b/python_core/audio_processing/core.py @@ -20,10 +20,9 @@ import matplotlib.pyplot as plt import sys import os -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) -from config import settings -from utils import setup_logger, validate_audio_file +from ..config import settings +from ..utils import setup_logger, validate_audio_file logger = setup_logger(__name__) diff --git a/python_core/services/file_manager.py b/python_core/services/file_manager.py index 11e7338..313526a 100644 --- a/python_core/services/file_manager.py +++ b/python_core/services/file_manager.py @@ -15,10 +15,9 @@ import mimetypes import sys import os -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) -from config import settings -from utils import setup_logger, validate_video_file, validate_audio_file, validate_image_file, get_file_info +from ..config import settings +from ..utils import setup_logger, validate_video_file, validate_audio_file, validate_image_file, get_file_info logger = setup_logger(__name__) diff --git a/python_core/services/project_manager.py b/python_core/services/project_manager.py index c188bb4..79b0103 100644 --- a/python_core/services/project_manager.py +++ b/python_core/services/project_manager.py @@ -16,10 +16,9 @@ import uuid import sys import os -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) -from config import settings -from utils import setup_logger, ensure_directory, get_unique_filename +from ..config import settings +from ..utils import setup_logger, ensure_directory, get_unique_filename logger = setup_logger(__name__) diff --git a/python_core/utils/logger.py b/python_core/utils/logger.py index 8664b97..e14ae49 100644 --- a/python_core/utils/logger.py +++ b/python_core/utils/logger.py @@ -8,9 +8,8 @@ from loguru import logger import sys import os -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) -from config import settings +from ..config import settings def setup_logger(name: str = None): diff --git a/python_core/video_processing/core.py b/python_core/video_processing/core.py index 8426a4d..b285848 100644 --- a/python_core/video_processing/core.py +++ b/python_core/video_processing/core.py @@ -21,10 +21,9 @@ import numpy as np import sys import os -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) -from config import settings -from utils import setup_logger, validate_video_file +from ..config import settings +from ..utils import setup_logger, validate_video_file logger = setup_logger(__name__) diff --git a/src-tauri/src/commands/ai_video.rs b/src-tauri/src/commands/ai_video.rs index 90d1d73..d86ad98 100644 --- a/src-tauri/src/commands/ai_video.rs +++ b/src-tauri/src/commands/ai_video.rs @@ -225,7 +225,8 @@ pub async fn batch_generate_ai_videos(app: tauri::AppHandle, request: BatchAIVid .map_err(|e| format!("Failed to serialize prompts: {}", e))?; let mut args = vec![ - "python_core/ai_video/video_generator.py".to_string(), + "-m".to_string(), + "python_core.ai_video.video_generator".to_string(), "--action".to_string(), "batch".to_string(), "--folder".to_string(),