import argparse from modules.image_translate_server import run_server from modules.image_processor2 import ImageProcessor from modules.loggerModule import Logger1 from modules.gpt_client import GPTClient import sys, os def get_base_dir(): """ 실행 환경에 따라 base_dir을 설정하는 메서드. cx_Freeze로 패키징된 경우 실행 파일의 경로, 일반 Python 환경일 경우 __file__을 기준으로 설정. """ if getattr(sys, 'frozen', False): # 패키징된 경우 base_dir = os.path.dirname(sys.executable) internal_dir = os.path.join(base_dir, 'lib') # lib 디렉토리 포함 if os.path.exists(internal_dir): # lib 디렉토리가 존재하면 base_dir로 설정 return internal_dir else: # 일반 Python 실행 환경 base_dir = os.path.dirname(os.path.abspath(__file__)) debug_dir = os.path.join(base_dir) # lib 디렉토리 포함 return debug_dir def main(): parser = argparse.ArgumentParser(description="이미지 번역 FastAPI 서버 실행") parser.add_argument('--workers', type=int, default=2, help='최대 동시 워커 수 (2~8)') args = parser.parse_args() max_workers = max(2, min(args.workers, 8)) # 실제 환경에 맞게 객체 생성 logger = Logger1() gpt_client = GPTClient() base_dir = get_base_dir() font_path = os.path.join(base_dir, "modules", "fonts", "HakgyoansimDunggeunmisoTTFB.ttf") print(f"font_path: {font_path}") image_processor = ImageProcessor(logger, gpt_client, base_dir, font_path) port = run_server(image_processor, max_workers) print(f"서버가 127.0.0.1:{port} 에서 실행 중입니다.") if __name__ == "__main__": main()