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

109 lines
2.5 KiB
Markdown
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.

# Windows构建问题修复指南
## 🔧 已修复的问题
### 1. Hidden import 'numpy.core._methods' not found
**解决方案**: 在spec文件中添加了完整的numpy隐藏导入
```python
'numpy.core._methods',
'numpy.core._dtype_ctypes',
'numpy.core._internal',
```
### 2. Hidden import "jinja2" not found
**解决方案**: 添加了jinja2相关导入
```python
'jinja2',
'jinja2.ext',
'markupsafe',
```
### 3. Library not found: msvcp140-1a0962f2a91a74c6d7136a768987a591.dll
**解决方案**:
- 禁用UPX压缩 (`upx=False`)
- 添加pandas完整依赖收集
- 使用`--collect-all=pandas`选项
## 🚀 使用修复后的构建脚本
### 方法1: 简化构建(推荐)
```bash
# Windows批处理
build_simple.bat
# 或直接运行Python脚本
python simple_windows_build.py
```
### 方法2: 完整构建
```bash
# 先测试环境
python test_build.py
# 运行完整构建
python windows_build.py
```
## ⚠️ 重要修复
### PyInstaller选项冲突问题
**问题**: `option(s) not allowed` 错误
**原因**: 使用spec文件时不能同时使用某些命令行选项
**解决**: 将所有配置写入spec文件命令行只保留基本选项
```python
# ❌ 错误用法
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所有模块
### 关键隐藏导入
```python
'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文件如果存在