299 lines
5.8 KiB
Markdown
299 lines
5.8 KiB
Markdown
# wrench_gui.py 打包说明
|
||
|
||
## 一、环境准备
|
||
|
||
### 1. 安装 Python 依赖
|
||
|
||
确保已安装所有必需的 Python 包:
|
||
|
||
```bash
|
||
# 进入 frontend 目录
|
||
cd frontend
|
||
|
||
# 安装依赖
|
||
pip install -r requirements.txt
|
||
|
||
# 安装 PyInstaller(如果未安装)
|
||
pip install pyinstaller
|
||
```
|
||
|
||
### 2. 检查文件结构
|
||
|
||
确保以下文件存在:
|
||
|
||
```
|
||
TorqueWrench/
|
||
├── frontend/
|
||
│ ├── wrench_gui.py # 主程序
|
||
│ ├── device_manager.py # 设备管理模块
|
||
│ ├── wrench_gui.spec # PyInstaller 配置文件
|
||
│ ├── build_exe.bat # Windows 打包脚本
|
||
│ └── build_exe.sh # Linux/Mac 打包脚本
|
||
├── wrench_controller.py # 扳手控制模块(父目录)
|
||
└── config.json # 配置文件(父目录)
|
||
```
|
||
|
||
---
|
||
|
||
## 二、打包步骤
|
||
|
||
### Windows 系统
|
||
|
||
1. **打开命令提示符或 PowerShell**
|
||
|
||
2. **进入 frontend 目录**
|
||
```cmd
|
||
cd F:\PyPro\TorqueWrench\frontend
|
||
```
|
||
|
||
3. **执行打包脚本**
|
||
```cmd
|
||
build_exe.bat
|
||
```
|
||
|
||
或者手动执行:
|
||
```cmd
|
||
pyinstaller wrench_gui.spec
|
||
```
|
||
|
||
### Linux/Mac 系统
|
||
|
||
1. **打开终端**
|
||
|
||
2. **进入 frontend 目录**
|
||
```bash
|
||
cd /path/to/TorqueWrench/frontend
|
||
```
|
||
|
||
3. **给脚本添加执行权限**
|
||
```bash
|
||
chmod +x build_exe.sh
|
||
```
|
||
|
||
4. **执行打包脚本**
|
||
```bash
|
||
./build_exe.sh
|
||
```
|
||
|
||
或者手动执行:
|
||
```bash
|
||
pyinstaller wrench_gui.spec
|
||
```
|
||
|
||
---
|
||
|
||
## 三、打包输出
|
||
|
||
打包完成后,会在 `frontend/dist/` 目录下生成可执行文件:
|
||
|
||
### Windows
|
||
- **位置**: `frontend/dist/wrench_gui/wrench_gui.exe`
|
||
- **大小**: 约 15-30 MB(取决于依赖)
|
||
|
||
### Linux/Mac
|
||
- **位置**: `frontend/dist/wrench_gui/wrench_gui`
|
||
- **大小**: 约 15-30 MB
|
||
|
||
---
|
||
|
||
## 四、运行打包后的程序
|
||
|
||
### 1. 准备配置文件
|
||
|
||
将 `config.json` 复制到可执行文件所在目录:
|
||
|
||
**Windows:**
|
||
```cmd
|
||
copy ..\config.json dist\wrench_gui\config.json
|
||
```
|
||
|
||
**Linux/Mac:**
|
||
```bash
|
||
cp ../config.json dist/wrench_gui/config.json
|
||
```
|
||
|
||
### 2. 启动后端服务
|
||
|
||
确保后端 API 服务已启动:
|
||
|
||
```bash
|
||
# 进入 backend 目录
|
||
cd ../backend
|
||
|
||
# 启动后端(Windows)
|
||
start_backend.bat
|
||
|
||
# 或启动后端(Linux/Mac)
|
||
./start_backend.sh
|
||
```
|
||
|
||
### 3. 运行可执行文件
|
||
|
||
**Windows:**
|
||
- 双击 `dist/wrench_gui/wrench_gui.exe`
|
||
- 或在命令行执行:
|
||
```cmd
|
||
dist\wrench_gui\wrench_gui.exe
|
||
```
|
||
|
||
**Linux/Mac:**
|
||
```bash
|
||
./dist/wrench_gui/wrench_gui
|
||
```
|
||
|
||
---
|
||
|
||
## 五、常见问题
|
||
|
||
### 1. 打包失败:找不到模块
|
||
|
||
**问题**: `ModuleNotFoundError: No module named 'xxx'`
|
||
|
||
**解决**:
|
||
- 检查是否已安装所有依赖:`pip install -r requirements.txt`
|
||
- 检查 `wrench_gui.spec` 中的 `hiddenimports` 是否包含缺失的模块
|
||
|
||
### 2. 运行时报错:找不到 config.json
|
||
|
||
**问题**: 程序启动时报错找不到配置文件
|
||
|
||
**解决**:
|
||
- 确保 `config.json` 在可执行文件同一目录下
|
||
- 检查 `wrench_gui.spec` 中的 `datas` 配置是否正确
|
||
|
||
### 3. 打包后的程序很大(>50MB)
|
||
|
||
**原因**: PyInstaller 会打包所有依赖库
|
||
|
||
**优化**:
|
||
- 使用虚拟环境,只安装必需的包
|
||
- 在 `wrench_gui.spec` 的 `excludes` 中添加不需要的模块
|
||
|
||
### 4. 控制台窗口也显示(Windows)
|
||
|
||
**问题**: 打包后的程序同时显示 GUI 和控制台窗口
|
||
|
||
**解决**:
|
||
- 检查 `wrench_gui.spec` 中 `console=False` 是否设置正确
|
||
|
||
### 5. 图标设置
|
||
|
||
如果需要自定义程序图标:
|
||
|
||
1. 准备图标文件(`.ico` 格式,Windows)
|
||
2. 修改 `wrench_gui.spec`:
|
||
```python
|
||
icon='icon.ico', # 图标文件路径
|
||
```
|
||
3. 重新打包
|
||
|
||
---
|
||
|
||
## 六、打包选项说明
|
||
|
||
### wrench_gui.spec 关键配置
|
||
|
||
- **`console=False`**: 不显示控制台窗口(GUI应用)
|
||
- **`upx=True`**: 使用 UPX 压缩(减小文件大小)
|
||
- **`datas`**: 包含的数据文件(如配置文件)
|
||
- **`hiddenimports`**: 需要显式导入的隐藏模块
|
||
|
||
### 单文件打包(可选)
|
||
|
||
如果需要打包成单个 `.exe` 文件,修改 `wrench_gui.spec`:
|
||
|
||
```python
|
||
exe = EXE(
|
||
pyz,
|
||
a.scripts,
|
||
[],
|
||
exclude_binaries=True, # 改为 True
|
||
name='wrench_gui',
|
||
debug=False,
|
||
bootloader_ignore_signals=False,
|
||
strip=False,
|
||
upx=True,
|
||
console=False,
|
||
)
|
||
```
|
||
|
||
然后添加 `COLLECT` 部分(PyInstaller 会自动处理)。
|
||
|
||
---
|
||
|
||
## 七、分发打包后的程序
|
||
|
||
### 1. 最小分发包
|
||
|
||
需要包含的文件:
|
||
|
||
```
|
||
wrench_gui/
|
||
├── wrench_gui.exe # 可执行文件
|
||
├── config.json # 配置文件
|
||
└── README.txt # 使用说明(可选)
|
||
```
|
||
|
||
### 2. 完整分发包(推荐)
|
||
|
||
```
|
||
wrench_gui/
|
||
├── wrench_gui.exe
|
||
├── config.json
|
||
├── README.txt
|
||
└── 使用说明.pdf # 用户手册
|
||
```
|
||
|
||
### 3. 注意事项
|
||
|
||
- 确保目标机器已安装必要的运行时库(如 Visual C++ Redistributable,Windows)
|
||
- 如果使用了 UPX 压缩,某些杀毒软件可能会误报,建议关闭 UPX 或添加白名单
|
||
|
||
---
|
||
|
||
## 八、快速打包命令(一键打包)
|
||
|
||
### Windows
|
||
```cmd
|
||
cd frontend && build_exe.bat
|
||
```
|
||
|
||
### Linux/Mac
|
||
```bash
|
||
cd frontend && chmod +x build_exe.sh && ./build_exe.sh
|
||
```
|
||
|
||
---
|
||
|
||
## 九、验证打包结果
|
||
|
||
打包完成后,建议测试:
|
||
|
||
1. **运行可执行文件**
|
||
- 检查是否能正常启动
|
||
- 检查是否能连接到后端 API
|
||
- 检查设备管理功能是否正常
|
||
|
||
2. **检查文件大小**
|
||
- 正常大小:15-30 MB
|
||
- 如果过大(>50MB),检查依赖
|
||
|
||
3. **测试功能**
|
||
- 工单列表加载
|
||
- 设备选择
|
||
- 拧紧操作
|
||
- 数据提交
|
||
|
||
---
|
||
|
||
## 十、技术支持
|
||
|
||
如果遇到打包问题:
|
||
|
||
1. 查看 PyInstaller 官方文档:https://pyinstaller.org/
|
||
2. 检查错误日志:`build/wrench_gui/warn-wrench_gui.txt`
|
||
3. 使用调试模式:在 `wrench_gui.spec` 中设置 `debug=True`
|
||
|
||
|
||
|