From 19cfbb4527a062a1948362bd1a5039d702c0b21b Mon Sep 17 00:00:00 2001 From: chakcy <947105045@qq.com> Date: Mon, 2 Feb 2026 14:11:51 +0800 Subject: [PATCH] modify build --- .../scripts/build.py | 38 ++++++++++++++----- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/{{ cookiecutter.project_name }}/src/{{ cookiecutter.project_name }}/scripts/build.py b/{{ cookiecutter.project_name }}/src/{{ cookiecutter.project_name }}/scripts/build.py index d4a72af..8f054de 100644 --- a/{{ cookiecutter.project_name }}/src/{{ cookiecutter.project_name }}/scripts/build.py +++ b/{{ cookiecutter.project_name }}/src/{{ cookiecutter.project_name }}/scripts/build.py @@ -10,18 +10,40 @@ def create_admin(): try: cmd = [ sys.executable, - "../src/{{ cookiecutter.project_name }}/scripts/create_admin.py", + "../src/chakcy/scripts/create_admin.py", ] print(f"正在运行 create_admin.py: {' '.join(cmd)}") - result = subprocess.run(cmd, cwd="./build", capture_output=True, text=True) + + # 创建包含 UTF-8 编码的环境变量 + env = os.environ.copy() + env["PYTHONIOENCODING"] = "utf-8" + env["PYTHONUTF8"] = "1" + + result = subprocess.run( + cmd, + cwd="./build", + capture_output=True, + text=True, + encoding="utf-8", # 明确指定编码 + errors="replace", # 替换无法解码的字符 + env=env, # 传递修改后的环境变量 + ) + if result.returncode == 0: print("创建管理员用户成功") print(result.stdout) else: print("创建管理员用户失败") - print("错误信息:", result.stderr) + # 安全地打印错误信息,避免编码问题 + try: + print("错误信息:", result.stderr) + except UnicodeEncodeError: + print( + "错误信息:", result.stderr.encode("ascii", "ignore").decode("ascii") + ) except Exception as e: print("创建管理员用户失败") + print(f"异常: {e}") def run_pyinstaller(): @@ -34,7 +56,7 @@ def run_pyinstaller(): "PyInstaller", "--onefile", "--name", - "{{ cookiecutter.project_name }}", + "chakcy", "--distpath", ".", "--workpath", @@ -109,7 +131,7 @@ def run_pyinstaller(): # "--add-data", "resources:resources", # 其他选项 "--icon", - "../../public/{{ cookiecutter.project_name }}.ico", + "../../public/chakcy.ico", "main.py", ] @@ -135,14 +157,12 @@ def main(): if not resources_path.exists(): resources_path.mkdir() app_packer = PythonToSQLite("./resources/app.mbank") - app_packer.pack_directory("src/{{ cookiecutter.project_name }}/app", "app") + app_packer.pack_directory("src/chakcy/app", "app") app_packer.verify_package_structure() app_packer.delete_source_code(None) plugin_packer = PythonToSQLite("./resources/plugins.mbank") - plugin_packer.pack_directory( - "src/{{ cookiecutter.project_name }}/plugins", "plugins" - ) + plugin_packer.pack_directory("src/chakcy/plugins", "plugins") plugin_packer.verify_package_structure() plugin_packer.delete_source_code(None)