177 lines
3.8 KiB
Markdown
177 lines
3.8 KiB
Markdown
|
|
## 后端(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` 即可。
|
|||
|
|
|
|||
|
|
|
|||
|
|
|