167 lines
3.3 KiB
Markdown
167 lines
3.3 KiB
Markdown
# Python虚拟环境跨平台配置说明
|
|
|
|
## 📋 概述
|
|
|
|
Go服务已支持跨平台调用Python脚本,可以在Windows和Ubuntu/Linux环境下正常运行。
|
|
|
|
## 🔄 Windows vs Linux 路径对比
|
|
|
|
### Windows环境
|
|
```
|
|
backend/
|
|
├── venv/
|
|
│ ├── Scripts/ ← Windows使用Scripts目录
|
|
│ │ ├── python.exe
|
|
│ │ ├── activate.bat
|
|
│ │ └── ...
|
|
│ └── Lib/
|
|
```
|
|
|
|
**Python解释器**: `backend/venv/Scripts/python.exe`
|
|
|
|
### Ubuntu/Linux环境
|
|
```
|
|
backend/
|
|
├── venv/
|
|
│ ├── bin/ ← Linux使用bin目录
|
|
│ │ ├── python
|
|
│ │ ├── activate
|
|
│ │ └── ...
|
|
│ └── lib/
|
|
```
|
|
|
|
**Python解释器**: `backend/venv/bin/python`
|
|
|
|
## 🚀 部署步骤
|
|
|
|
### 在Ubuntu服务器上部署
|
|
|
|
1. **创建Python虚拟环境**:
|
|
```bash
|
|
cd /path/to/backend
|
|
python3 -m venv venv
|
|
```
|
|
|
|
2. **激活虚拟环境**:
|
|
```bash
|
|
source venv/bin/activate
|
|
```
|
|
|
|
3. **安装依赖**:
|
|
```bash
|
|
pip install -r requirements.txt
|
|
playwright install chromium
|
|
```
|
|
|
|
4. **启动Go服务**:
|
|
```bash
|
|
cd /path/to/go_backend
|
|
go run main.go
|
|
```
|
|
|
|
### 在Windows上开发
|
|
|
|
1. **创建Python虚拟环境**:
|
|
```cmd
|
|
cd backend
|
|
python -m venv venv
|
|
```
|
|
|
|
2. **激活虚拟环境**:
|
|
```cmd
|
|
venv\Scripts\activate
|
|
```
|
|
|
|
3. **安装依赖**:
|
|
```cmd
|
|
pip install -r requirements.txt
|
|
playwright install chromium
|
|
```
|
|
|
|
4. **启动Go服务**:
|
|
```cmd
|
|
cd go_backend
|
|
go run main.go
|
|
```
|
|
|
|
## 🔧 技术实现
|
|
|
|
### 跨平台路径检测
|
|
|
|
Go代码中使用`runtime.GOOS`自动检测操作系统:
|
|
|
|
```go
|
|
func getPythonPath(backendDir string) string {
|
|
if runtime.GOOS == "windows" {
|
|
// Windows: venv\Scripts\python.exe
|
|
return filepath.Join(backendDir, "venv", "Scripts", "python.exe")
|
|
}
|
|
// Linux/Mac: venv/bin/python
|
|
return filepath.Join(backendDir, "venv", "bin", "python")
|
|
}
|
|
```
|
|
|
|
### 使用位置
|
|
|
|
该函数在以下服务中被调用:
|
|
- `service/xhs_service.go` - 小红书登录服务
|
|
- `service/employee_service.go` - 员工服务(绑定小红书账号)
|
|
|
|
## ✅ 验证部署
|
|
|
|
### 测试Python环境
|
|
```bash
|
|
# Ubuntu
|
|
cd backend
|
|
source venv/bin/activate
|
|
python xhs_cli.py --help
|
|
|
|
# Windows
|
|
cd backend
|
|
venv\Scripts\activate
|
|
python xhs_cli.py --help
|
|
```
|
|
|
|
### 测试Go调用
|
|
```bash
|
|
# 启动Go服务后,测试发送验证码接口
|
|
curl -X POST http://localhost:8080/api/employee/xhs/send-code \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"phone":"13800138000"}'
|
|
```
|
|
|
|
## ⚠️ 注意事项
|
|
|
|
1. **不要提交venv目录到Git**:已在`.gitignore`中配置忽略
|
|
2. **环境隔离**:Windows和Ubuntu各自维护独立的venv环境
|
|
3. **依赖一致性**:确保requirements.txt在两个平台上一致
|
|
4. **Playwright浏览器**:在Ubuntu上需要安装chromium依赖库
|
|
|
|
## 🐛 常见问题
|
|
|
|
### Q: Ubuntu上提示找不到Python
|
|
**A**: 确保已安装Python3:
|
|
```bash
|
|
sudo apt update
|
|
sudo apt install python3 python3-venv python3-pip
|
|
```
|
|
|
|
### Q: Playwright启动失败
|
|
**A**: 安装系统依赖:
|
|
```bash
|
|
playwright install-deps chromium
|
|
```
|
|
|
|
### Q: Go服务找不到Python脚本
|
|
**A**: 检查`backend`目录与`go_backend`目录的相对位置,确保为:
|
|
```
|
|
project/
|
|
├── backend/ # Python脚本
|
|
└── go_backend/ # Go服务
|
|
```
|
|
|
|
## 📚 相关文档
|
|
|
|
- [Go服务环境变量配置](ENV_CONFIG_GUIDE.md)
|
|
- [Python CLI工具文档](../backend/XHS_CLI_README.md)
|