Files
cangku/build_exe.py
2025-12-30 17:50:43 +08:00

75 lines
2.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""
打包脚本 - 将项目打包为exe文件
使用方法: python build_exe.py
"""
import os
import sys
import subprocess
import shutil
def build_exe():
"""使用PyInstaller打包为exe"""
# 项目根目录
root_dir = os.path.dirname(os.path.abspath(__file__))
os.chdir(root_dir)
# 主程序文件
main_script = "main.py"
# 打包命令
cmd = [
"pyinstaller",
"--name=服装布料计算管理器",
"--onefile", # 打包为单个exe文件
"--windowed", # 不显示控制台窗口
"--hidden-import=PyQt5.QtCore",
"--hidden-import=PyQt5.QtGui",
"--hidden-import=PyQt5.QtWidgets",
"--hidden-import=sqlite3",
"--clean", # 清理临时文件
]
# 如果有图标文件,添加图标参数
if os.path.exists("icon.ico"):
cmd.append("--icon=icon.ico")
# 如果数据库文件存在,添加到打包数据中
if os.path.exists("fabric_library.db"):
# Windows使用分号Linux/Mac使用冒号
separator = ";" if sys.platform == "win32" else ":"
cmd.append(f"--add-data=fabric_library.db{separator}.")
cmd.append(main_script)
print("开始打包...")
print(f"执行命令: {' '.join(cmd)}")
try:
# 执行打包
result = subprocess.run(cmd, check=True, capture_output=True, text=True)
print("打包成功!")
print(f"\n输出文件位置: {os.path.join(root_dir, 'dist', '服装布料计算管理器.exe')}")
# 复制数据库文件到dist目录如果存在
if os.path.exists("fabric_library.db"):
dist_dir = os.path.join(root_dir, "dist")
if os.path.exists(dist_dir):
shutil.copy2("fabric_library.db", dist_dir)
print(f"数据库文件已复制到: {os.path.join(dist_dir, 'fabric_library.db')}")
print("\n打包完成!可以在 dist 目录中找到生成的exe文件。")
except subprocess.CalledProcessError as e:
print(f"打包失败: {e}")
print(f"错误输出: {e.stderr}")
sys.exit(1)
except FileNotFoundError:
print("错误: 未找到 pyinstaller请先安装: pip install pyinstaller")
sys.exit(1)
if __name__ == "__main__":
build_exe()