Files
ai_wht_wechat/go_backend/PYTHON_CROSS_PLATFORM.md
2025-12-19 22:36:48 +08:00

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服务器上部署

  1. 创建Python虚拟环境:
cd /path/to/backend
python3 -m venv venv
  1. 激活虚拟环境:
source venv/bin/activate
  1. 安装依赖:
pip install -r requirements.txt
playwright install chromium
  1. 启动Go服务:
cd /path/to/go_backend
go run main.go

在Windows上开发

  1. 创建Python虚拟环境:
cd backend
python -m venv venv
  1. 激活虚拟环境:
venv\Scripts\activate
  1. 安装依赖:
pip install -r requirements.txt
playwright install chromium
  1. 启动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"}'

⚠️ 注意事项

  1. 不要提交venv目录到Git:已在.gitignore中配置忽略
  2. 环境隔离:Windows和Ubuntu各自维护独立的venv环境
  3. 依赖一致性:确保requirements.txt在两个平台上一致
  4. 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服务

📚 相关文档