116 lines
2.7 KiB
Markdown
116 lines
2.7 KiB
Markdown
# 打包说明
|
||
|
||
## 前置要求
|
||
|
||
1. Python 3.8+
|
||
2. 已安装所有依赖(见 `requirements.txt`)
|
||
3. PyInstaller(打包脚本会自动安装)
|
||
|
||
## 打包步骤
|
||
|
||
### Windows
|
||
|
||
1. 激活虚拟环境(如果使用):
|
||
```cmd
|
||
venv\Scripts\activate
|
||
```
|
||
|
||
2. 运行打包脚本:
|
||
```cmd
|
||
build.bat
|
||
```
|
||
或者直接运行:
|
||
```cmd
|
||
python build.py
|
||
```
|
||
|
||
3. 打包完成后,可执行文件位于:
|
||
- 单文件模式:`dist\PCM_Viewer.exe`
|
||
- 文件夹模式:`dist\PCM_Viewer\PCM_Viewer.exe`
|
||
|
||
### Linux/Mac
|
||
|
||
1. 激活虚拟环境(如果使用):
|
||
```bash
|
||
source venv/bin/activate
|
||
```
|
||
|
||
2. 运行打包脚本:
|
||
```bash
|
||
chmod +x build.sh
|
||
./build.sh
|
||
```
|
||
或者直接运行:
|
||
```bash
|
||
python build.py
|
||
```
|
||
|
||
## 打包模式
|
||
|
||
### 单文件模式(默认,推荐)
|
||
|
||
- 所有依赖打包到一个 exe 文件中
|
||
- 首次运行会在 exe 同目录创建配置文件:
|
||
- `dashboard.json` - 布局配置
|
||
- `influx_settings.json` - InfluxDB 配置
|
||
- 配置文件保存在 exe 同目录,方便用户修改
|
||
|
||
### 文件夹模式
|
||
|
||
使用 `--onedir` 参数:
|
||
```bash
|
||
python build.py --onedir
|
||
```
|
||
|
||
- 所有文件打包到一个文件夹中
|
||
- 配置文件同样保存在 exe 同目录
|
||
|
||
## 配置文件处理
|
||
|
||
程序会自动处理配置文件:
|
||
|
||
1. **首次运行**:如果配置文件不存在,程序会创建默认配置
|
||
2. **配置文件位置**:
|
||
- 打包后:exe 同目录
|
||
- 开发模式:脚本同目录
|
||
3. **配置文件内容**:
|
||
- `dashboard.json`:保存画布布局和组件配置
|
||
- `influx_settings.json`:保存 InfluxDB 连接配置
|
||
|
||
## 注意事项
|
||
|
||
1. **首次运行**:打包后的程序首次运行可能需要几秒钟来解压临时文件
|
||
2. **杀毒软件**:某些杀毒软件可能会误报,这是 PyInstaller 打包程序的常见问题
|
||
3. **文件大小**:单文件打包后大约 100-200MB(包含 PyQt6 和 WebEngine)
|
||
4. **依赖库**:确保所有依赖都已安装,特别是 `PyQt6` 和 `PyQt6-WebEngine`
|
||
|
||
## 常见问题
|
||
|
||
### Q: 打包后程序无法启动?
|
||
|
||
A: 检查以下几点:
|
||
- 确保所有依赖都已安装
|
||
- 查看控制台错误信息(如果有)
|
||
- 尝试使用 `--onedir` 模式打包,查看详细错误
|
||
|
||
### Q: 配置文件找不到?
|
||
|
||
A: 配置文件会自动创建在 exe 同目录。如果找不到,检查:
|
||
- exe 是否有写入权限
|
||
- 是否在只读目录运行
|
||
|
||
### Q: Web 组件无法显示?
|
||
|
||
A: 确保打包时包含了 `PyQt6.QtWebEngineWidgets`,打包脚本已自动处理。
|
||
|
||
## 自定义打包选项
|
||
|
||
如果需要自定义打包选项,可以修改 `build.py` 中的 PyInstaller 参数:
|
||
|
||
- `--icon=icon.ico`:添加程序图标
|
||
- `--add-data`:添加额外数据文件
|
||
- `--hidden-import`:添加隐藏导入的模块
|
||
|
||
|
||
|