3.3 KiB
3.3 KiB
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服务器上部署
- 创建Python虚拟环境:
cd /path/to/backend
python3 -m venv venv
- 激活虚拟环境:
source venv/bin/activate
- 安装依赖:
pip install -r requirements.txt
playwright install chromium
- 启动Go服务:
cd /path/to/go_backend
go run main.go
在Windows上开发
- 创建Python虚拟环境:
cd backend
python -m venv venv
- 激活虚拟环境:
venv\Scripts\activate
- 安装依赖:
pip install -r requirements.txt
playwright install chromium
- 启动Go服务:
cd go_backend
go run main.go
🔧 技术实现
跨平台路径检测
Go代码中使用runtime.GOOS自动检测操作系统:
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环境
# Ubuntu
cd backend
source venv/bin/activate
python xhs_cli.py --help
# Windows
cd backend
venv\Scripts\activate
python xhs_cli.py --help
测试Go调用
# 启动Go服务后,测试发送验证码接口
curl -X POST http://localhost:8080/api/employee/xhs/send-code \
-H "Content-Type: application/json" \
-d '{"phone":"13800138000"}'
⚠️ 注意事项
- 不要提交venv目录到Git:已在
.gitignore中配置忽略 - 环境隔离:Windows和Ubuntu各自维护独立的venv环境
- 依赖一致性:确保requirements.txt在两个平台上一致
- Playwright浏览器:在Ubuntu上需要安装chromium依赖库
🐛 常见问题
Q: Ubuntu上提示找不到Python
A: 确保已安装Python3:
sudo apt update
sudo apt install python3 python3-venv python3-pip
Q: Playwright启动失败
A: 安装系统依赖:
playwright install-deps chromium
Q: Go服务找不到Python脚本
A: 检查backend目录与go_backend目录的相对位置,确保为:
project/
├── backend/ # Python脚本
└── go_backend/ # Go服务