TableSynthesis/BUILD_FIXES.md
2025-07-02 19:59:41 +08:00

2.5 KiB
Raw Permalink Blame History

Windows构建问题修复指南

🔧 已修复的问题

1. Hidden import 'numpy.core._methods' not found

解决方案: 在spec文件中添加了完整的numpy隐藏导入

'numpy.core._methods',
'numpy.core._dtype_ctypes', 
'numpy.core._internal',

2. Hidden import "jinja2" not found

解决方案: 添加了jinja2相关导入

'jinja2',
'jinja2.ext',
'markupsafe',

3. Library not found: msvcp140-1a0962f2a91a74c6d7136a768987a591.dll

解决方案:

  • 禁用UPX压缩 (upx=False)
  • 添加pandas完整依赖收集
  • 使用--collect-all=pandas选项

🚀 使用修复后的构建脚本

方法1: 简化构建(推荐)

# Windows批处理
build_simple.bat

# 或直接运行Python脚本
python simple_windows_build.py

方法2: 完整构建

# 先测试环境
python test_build.py

# 运行完整构建
python windows_build.py

⚠️ 重要修复

PyInstaller选项冲突问题

问题: option(s) not allowed 错误 原因: 使用spec文件时不能同时使用某些命令行选项 解决: 将所有配置写入spec文件命令行只保留基本选项

# ❌ 错误用法
cmd = ['pyinstaller', '--collect-all=pandas', 'file.spec']

# ✅ 正确用法
cmd = ['pyinstaller', '--clean', '--noconfirm', 'file.spec']

📋 构建选项说明

PyInstaller命令行选项

  • --clean: 清理缓存
  • --noconfirm: 不询问确认
  • --log-level=INFO: 详细日志
  • --collect-all=pandas: 收集pandas所有模块
  • --collect-all=numpy: 收集numpy所有模块
  • --collect-all=openpyxl: 收集openpyxl所有模块

关键隐藏导入

'numpy.core._methods',
'pandas._libs.window.aggregations',
'ctypes.util',
'pkg_resources.py2_warn',

⚠️ 常见问题

1. 构建时间长

  • 正常现象首次构建可能需要5-10分钟
  • 后续构建会使用缓存,速度更快

2. 文件大小大

  • 包含完整Python环境和所有依赖
  • 可以通过排除不必要的模块来减小大小

3. 警告信息

  • 大部分WARNING可以忽略
  • 只要没有ERROR构建通常能成功

🎯 构建成功标志

✅ 构建成功! 耗时: XX.X秒
✅ 生成文件: dist/座位分配系统.exe
✅ 文件大小: XX.X MB

📦 分发包内容

构建成功后会生成:

  • 座位分配系统_Windows_分发包/
    • 座位分配系统.exe - 主程序
    • README.txt - 使用说明
    • 示例文件/ - 示例Excel文件如果存在