TorqueWrench/backend/后端打包说明.md

177 lines
3.8 KiB
Markdown
Raw Normal View History

2026-02-26 16:39:29 +08:00
## 后端Flask API打包与运行说明
### 1. 是否可以用和前端相同的方式打包?
**可以。**
后端同样可以用 **PyInstaller** 打包成一个可执行文件,只是:
- 前端是 **GUI 程序**`console=False`
- 后端是 **控制台服务程序**`console=True`,启动后常驻,监听 5000 端口)。
本项目已经在 `backend` 目录下生成了两个打包脚本:
- `build_backend.bat`Windows
- `build_backend.sh`Linux/Mac
---
### 2. 打包前准备
在打包前,确保:
- 已安装 Python 3 环境
- 已安装后端依赖:
```bash
cd backend
pip install -r requirements.txt
```
(如果使用虚拟环境,请先激活虚拟环境再执行上面的命令)
---
### 3. Windows 下打包后端
1. 打开命令提示符或 PowerShell
2. 进入 `backend` 目录:
```cmd
cd F:\PyPro\TorqueWrench\backend
```
3. 执行打包脚本:
```cmd
build_backend.bat
```
脚本会自动:
- 检查并安装 PyInstaller
- 清理旧的 `build/`、`dist/` 目录
- 调用:
```cmd
pyinstaller --name backend_api --console --paths .. --hidden-import wrench_controller app.py
```
4. 打包完成后,可执行文件位置:
```text
backend\dist\backend_api\backend_api.exe
```
5. 如果你已经有一个正在使用的数据库文件 `wrench.db`,可以复制过去:
```cmd
copy wrench.db dist\backend_api\wrench.db
```
6. 启动后端服务:
```cmd
dist\backend_api\backend_api.exe
```
启动后,后端会监听 `http://localhost:5000`,前端照常访问。
---
### 4. Linux / Mac 下打包后端
1. 打开终端
2. 进入 `backend` 目录:
```bash
cd /path/to/TorqueWrench/backend
```
3. 赋予脚本执行权限(首次):
```bash
chmod +x build_backend.sh
```
4. 执行打包脚本:
```bash
./build_backend.sh
```
脚本会自动:
- 检查并安装 PyInstaller
- 清理旧的 `build/`、`dist/` 目录
- 调用:
```bash
pyinstaller --name backend_api --console --paths .. --hidden-import wrench_controller app.py
```
5. 打包完成后,可执行文件位置:
```text
backend/dist/backend_api/backend_api
```
6. 如果已有生产数据库,复制到打包目录:
```bash
cp wrench.db dist/backend_api/wrench.db
```
7. 启动后端服务:
```bash
./dist/backend_api/backend_api
```
同样会监听 `http://localhost:5000`
---
### 5. 和直接用 Python 运行的对比
- **直接运行(开发环境常用):**
```bash
cd backend
python app.py
```
- **打包运行(部署 / 发给其他机器):**
- 不需要安装源码,只要有打包后的目录和配置/数据库文件即可。
- 更适合发给不熟悉 Python 环境的用户。
两种方式使用的是同一套代码逻辑,差别只是启动方式。
---
### 6. 注意事项
- **端口**:打包后默认仍然是监听 5000 端口,如果需要改端口,需要改 `app.py` 启动代码(或用环境变量/参数)。
- **数据库文件**
- 代码中使用的是:
- `db_path = os.path.join(os.path.dirname(__file__), "wrench.db")`
- 打包后的 `__file__` 会指向打包目录内的脚本位置,所以:
- 你只要把 `wrench.db` 放到 `dist/backend_api/` 目录下,程序就能正常使用。
- **日志输出**:后端是控制台应用,会在命令行窗口打印日志(方便排查问题)。
---
### 7. 简短回答你的问题
- **问**:后端服务要如何打包?也用同样方式可以吗?
- **答**:可以。后端已经提供了和前端类似的一键打包脚本:
- Windows`backend/build_backend.bat`
- Linux/Mac`backend/build_backend.sh`
你只需要:
1. 进入 `backend` 目录
2. 安装依赖:`pip install -r requirements.txt`
3. 运行打包脚本Windows 用 `.bat`Linux/Mac 用 `.sh`
4.`wrench.db` 复制到 `dist/backend_api/`,运行生成的 `backend_api` 即可。