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

177 lines
3.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

## 后端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` 即可。