from typing import List import configparser import os import sys # miniQMTPath = r'D:\\Programs\\DTQMT_MN\\userdata_mini' # miniQMT软件的安装路径 miniQMTPath = r'D:\\Programs\\DTQMT\\userdata_mini' # miniQMT软件的安装路径 # miniQMTPath = '' # grid_price = [11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1] # 网格价格设置,从高到低 grid_price:List[float] = [] # 网格价格设置,从高到低 grid_volume:int = 100 # 每个网格的交易手数 account_no:str = '99082560' # account_no:str = '89009170' # 交易账号 def get_config_path(): """获取配置文件的正确路径(兼容开发环境和打包后的可执行文件)""" if getattr(sys, 'frozen', False): # 打包后的可执行文件环境 # sys._MEIPASS是PyInstaller解压临时文件的目录 # 配置文件应该放在可执行文件同目录下 base_path = os.path.dirname(sys.executable) else: # 开发环境 base_path = os.path.dirname(os.path.abspath(__file__)) return os.path.join(base_path, 'config.ini') def create_default_config(): """创建默认配置文件""" config = configparser.ConfigParser() config['config'] = { 'miniQMTPath': r'D:/Programs/QMT/userdata_mini', 'grid_price': '11.0,10.0,9.0,8.0,7.0,6.0,5.0,4.0,3.0,2.0,1.0,0.0', 'grid_volume': '100', 'account_no': '00000000' } config_path = get_config_path() with open(config_path, 'w') as configfile: config.write(configfile) print(f'已创建默认配置文件: {config_path}') def initConfig(): global miniQMTPath, grid_price, grid_volume, account_no # 获取配置文件路径 config_path = get_config_path() # 检查配置文件是否存在,不存在则创建 if not os.path.exists(config_path): create_default_config() config = configparser.ConfigParser() config.read(config_path, encoding='utf-8') miniQMTPath = config.get('config','miniQMTPath') str_list = config.get('config','grid_price').split(',') grid_price = [float(item) for item in str_list] grid_volume = config.getint('config','grid_volume') account_no = config.get('config','account_no')