| 
									
										
										
										
											2025-09-09 10:41:27 +08:00
										 |  |  | #!/usr/bin/env python | 
					
						
							|  |  |  | # -*- coding: utf-8 -*- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | """
 | 
					
						
							|  |  |  | 启动配置加载器 | 
					
						
							|  |  |  | 在主程序启动前加载配置文件中的设置 | 
					
						
							|  |  |  | """
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import os | 
					
						
							|  |  |  | import sys | 
					
						
							|  |  |  | import configparser | 
					
						
							|  |  |  | from pathlib import Path | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def load_startup_config(): | 
					
						
							|  |  |  |     """加载启动配置并设置环境变量""" | 
					
						
							|  |  |  |     try: | 
					
						
							|  |  |  |         # 获取配置文件路径 | 
					
						
							|  |  |  |         if getattr(sys, 'frozen', False): | 
					
						
							|  |  |  |             # 在打包后的可执行文件中 | 
					
						
							|  |  |  |             app_dir = Path(sys.executable).parent | 
					
						
							|  |  |  |         else: | 
					
						
							|  |  |  |             # 在开发环境中 | 
					
						
							|  |  |  |             app_dir = Path(__file__).parent.parent.parent | 
					
						
							|  |  |  |          | 
					
						
							|  |  |  |         config_file = app_dir / "config.ini" | 
					
						
							|  |  |  |          | 
					
						
							|  |  |  |         if config_file.exists(): | 
					
						
							|  |  |  |             config = configparser.ConfigParser() | 
					
						
							|  |  |  |             config.read(str(config_file), encoding='utf-8') | 
					
						
							|  |  |  |              | 
					
						
							|  |  |  |             # 加载数据库配置 | 
					
						
							|  |  |  |             if 'database' in config: | 
					
						
							|  |  |  |                 db_config = config['database'] | 
					
						
							|  |  |  |                 if 'username' in db_config: | 
					
						
							|  |  |  |                     os.environ['DB_USER'] = db_config['username'] | 
					
						
							|  |  |  |                 if 'password' in db_config: | 
					
						
							|  |  |  |                     os.environ['DB_PASSWORD'] = db_config['password'] | 
					
						
							|  |  |  |                 if 'host' in db_config: | 
					
						
							|  |  |  |                     os.environ['DB_HOST'] = db_config['host'] | 
					
						
							|  |  |  |              | 
					
						
							|  |  |  |             # 加载API配置 | 
					
						
							|  |  |  |             if 'api' in config: | 
					
						
							|  |  |  |                 api_config = config['api'] | 
					
						
							|  |  |  |                 if 'tf_api_base_url' in api_config: | 
					
						
							|  |  |  |                     os.environ['TF_API_BASE_URL'] = api_config['tf_api_base_url'] | 
					
						
							| 
									
										
										
										
											2025-09-20 16:50:45 +08:00
										 |  |  |                 if 'tf_web_post' in api_config: | 
					
						
							|  |  |  |                     os.environ['TF_WEB_POST'] = api_config['tf_web_post'] | 
					
						
							|  |  |  |                 if 'cm_id' in api_config: | 
					
						
							|  |  |  |                     os.environ['CM_ID'] = api_config['cm_id'] | 
					
						
							|  |  |  |                 if 'dg_id' in api_config: | 
					
						
							|  |  |  |                     os.environ['DG_ID'] = api_config['dg_id'] | 
					
						
							| 
									
										
										
										
											2025-09-09 10:41:27 +08:00
										 |  |  |              | 
					
						
							|  |  |  |             print(f"配置已从 {config_file} 加载") | 
					
						
							|  |  |  |             return True | 
					
						
							|  |  |  |         else: | 
					
						
							|  |  |  |             print(f"配置文件不存在: {config_file}") | 
					
						
							|  |  |  |             return False | 
					
						
							|  |  |  |              | 
					
						
							|  |  |  |     except Exception as e: | 
					
						
							|  |  |  |         print(f"加载配置失败: {e}") | 
					
						
							|  |  |  |         return False | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def ensure_config_exists(): | 
					
						
							|  |  |  |     """确保配置文件存在,如果不存在则创建默认配置""" | 
					
						
							|  |  |  |     try: | 
					
						
							|  |  |  |         if getattr(sys, 'frozen', False): | 
					
						
							|  |  |  |             app_dir = Path(sys.executable).parent | 
					
						
							|  |  |  |         else: | 
					
						
							|  |  |  |             app_dir = Path(__file__).parent.parent.parent | 
					
						
							|  |  |  |          | 
					
						
							|  |  |  |         config_file = app_dir / "config.ini" | 
					
						
							|  |  |  |          | 
					
						
							|  |  |  |         if not config_file.exists(): | 
					
						
							|  |  |  |             config = configparser.ConfigParser() | 
					
						
							|  |  |  |              | 
					
						
							|  |  |  |             # 默认数据库配置 | 
					
						
							|  |  |  |             config['database'] = { | 
					
						
							|  |  |  |                 'username': 'root', | 
					
						
							|  |  |  |                 'password': 'root', | 
					
						
							|  |  |  |                 'host': 'localhost' | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |              | 
					
						
							| 
									
										
										
										
											2025-09-20 16:50:45 +08:00
										 |  |  |             # 创建配置内容,包含注释 | 
					
						
							|  |  |  |             config_content = """[database]
 | 
					
						
							|  |  |  | username = root | 
					
						
							|  |  |  | password = root | 
					
						
							|  |  |  | host = localhost | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [api] | 
					
						
							|  |  |  | tf_api_base_url = http://111.231.146.230:4080/jeecg-boot | 
					
						
							|  |  |  | tf_web_post = false | 
					
						
							|  |  |  | cm_id = 571985c1-cfa5-4186-8acd-6e3868a5e08c | 
					
						
							|  |  |  | dg_id = e22cacb4-a580-45ba-949e-356f57fa1a43 | 
					
						
							|  |  |  | """
 | 
					
						
							| 
									
										
										
										
											2025-09-09 10:41:27 +08:00
										 |  |  |              | 
					
						
							|  |  |  |             with open(str(config_file), 'w', encoding='utf-8') as f: | 
					
						
							| 
									
										
										
										
											2025-09-20 16:50:45 +08:00
										 |  |  |                 f.write(config_content) | 
					
						
							| 
									
										
										
										
											2025-09-09 10:41:27 +08:00
										 |  |  |              | 
					
						
							|  |  |  |             print(f"已创建默认配置文件: {config_file}") | 
					
						
							|  |  |  |      | 
					
						
							|  |  |  |     except Exception as e: | 
					
						
							|  |  |  |         print(f"创建默认配置失败: {e}") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if __name__ == "__main__": | 
					
						
							|  |  |  |     ensure_config_exists() | 
					
						
							|  |  |  |     load_startup_config() |