File size: 8,024 Bytes
927965d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
# 依赖版本说明

本文档详细说明了项目的 Python 版本要求、Poetry 依赖管理和版本控制策略。

## 📦 依赖管理工具

项目使用 **Poetry** 进行现代化的依赖管理,相比传统的 `requirements.txt` 提供:

-**依赖解析**: 自动解决版本冲突
-**锁定文件**: `poetry.lock` 确保环境一致性
-**虚拟环境**: 自动创建和管理虚拟环境
-**依赖分组**: 区分生产依赖和开发依赖
-**语义化版本**: 更精确的版本控制
-**构建系统**: 内置打包和发布功能

## 🐍 Python 版本要求

### Poetry 配置

```toml

[tool.poetry.dependencies]

python = ">=3.9,<4.0"

```

### 推荐配置
- **生产环境**: Python 3.10+ 或 3.11+ (最佳性能和稳定性)
- **开发环境**: Python 3.11+ 或 3.12+ (获得最佳开发体验)
- **最低要求**: Python 3.9 (基础功能支持)

### 版本兼容性矩阵

| Python版本 | 支持状态 | 推荐程度 | 主要特性 | 说明 |
|-----------|---------|---------|---------|------|
| 3.8 | ❌ 不支持 | 不推荐 | - | 缺少必要的类型注解特性 |
| 3.9 | ✅ 完全支持 | 可用 | 基础功能 | 最低支持版本,所有功能正常 |
| 3.10 | ✅ 完全支持 | 推荐 | 结构化模式匹配 | Docker 默认版本,稳定可靠 |
| 3.11 | ✅ 完全支持 | 强烈推荐 | 性能优化 | 显著性能提升,类型提示增强 |
| 3.12 | ✅ 完全支持 | 推荐 | 更快启动 | 更快启动时间,最新稳定特性 |
| 3.13 | ✅ 完全支持 | 可用 | 最新特性 | 最新版本,开发环境推荐 |

## 📋 Poetry 依赖配置

### pyproject.toml 结构

```toml

[tool.poetry]

name = "aistudioproxyapi"

version = "0.1.0"

package-mode = false



[tool.poetry.dependencies]

# 生产依赖

python = ">=3.9,<4.0"

fastapi = "==0.115.12"

# ... 其他依赖



[tool.poetry.group.dev.dependencies]

# 开发依赖 (可选安装)

pytest = "^7.0.0"

black = "^23.0.0"

# ... 其他开发工具

```

### 版本约束语法

Poetry 使用语义化版本约束:

- `==1.2.3` - 精确版本
- `^1.2.3` - 兼容版本 (>=1.2.3, <2.0.0)
- `~1.2.3` - 补丁版本 (>=1.2.3, <1.3.0)
- `>=1.2.3,<2.0.0` - 版本范围
- `*` - 最新版本

## 🔧 核心依赖版本

### Web 框架相关
```toml

fastapi = "==0.115.12"

pydantic = ">=2.7.1,<3.0.0"

uvicorn = "==0.29.0"

```

**版本说明**:
- **FastAPI 0.115.12**: 最新稳定版本,包含性能优化和新功能
  - 新增 Query/Header/Cookie 参数模型支持
  - 改进的类型提示和验证
  - 更好的 OpenAPI 文档生成
- **Pydantic 2.7.1+**: 现代数据验证库,使用版本范围确保兼容性
- **Uvicorn 0.29.0**: 高性能 ASGI 服务器

### 浏览器自动化
```toml

playwright = "*"

camoufox = {version = "0.4.11", extras = ["geoip"]}

```

**版本说明**:
- **Playwright**: 使用最新版本 (`*`),确保浏览器兼容性
- **Camoufox 0.4.11**: 反指纹检测浏览器,包含地理位置数据扩展

### 网络和安全
```toml

aiohttp = "~=3.9.5"

requests = "==2.31.0"

cryptography = "==42.0.5"

pyjwt = "==2.8.0"

websockets = "==12.0"

aiosocks = "~=0.2.6"

python-socks = "~=2.7.1"

```

**版本说明**:
- **aiohttp ~3.9.5**: 异步HTTP客户端,允许补丁版本更新
- **cryptography 42.0.5**: 加密库,固定版本确保安全性
- **websockets 12.0**: WebSocket 支持
- **requests 2.31.0**: HTTP 客户端库

### 系统工具
```toml

python-dotenv = "==1.0.1"

httptools = "==0.6.1"

uvloop = {version = "*", markers = "sys_platform != 'win32'"}

Flask = "==3.0.3"

```

**版本说明**:
- **uvloop**: 仅在非 Windows 系统安装,显著提升性能
- **httptools**: HTTP 解析优化
- **python-dotenv**: 环境变量管理
- **Flask**: 用于特定功能的轻量级 Web 框架

## 🔄 Poetry 依赖管理命令

### 基础命令

```bash

# 安装所有依赖

poetry install



# 安装包括开发依赖

poetry install --with dev



# 添加新依赖

poetry add package_name



# 添加开发依赖

poetry add --group dev package_name



# 移除依赖

poetry remove package_name



# 更新依赖

poetry update



# 更新特定依赖

poetry update package_name



# 查看依赖树

poetry show --tree



# 导出 requirements.txt (兼容性)

poetry export -f requirements.txt --output requirements.txt

```

### 锁定文件管理

```bash

# 更新锁定文件

poetry lock



# 不更新锁定文件的情况下安装

poetry install --no-update



# 检查锁定文件是否最新

poetry check

```

## 📊 依赖更新策略

### 自动更新 (使用 ~ 版本范围)
- `aiohttp~=3.9.5` - 允许补丁版本更新 (3.9.5 → 3.9.x)
- `aiosocks~=0.2.6` - 允许补丁版本更新 (0.2.6 → 0.2.x)
- `python-socks~=2.7.1` - 允许补丁版本更新 (2.7.1 → 2.7.x)

### 固定版本 (使用 == 精确版本)
- 核心框架组件 (FastAPI, Uvicorn, python-dotenv)
- 安全相关库 (cryptography, pyjwt, requests)
- 稳定性要求高的组件 (websockets, httptools)

### 兼容版本 (使用版本范围)
- `pydantic>=2.7.1,<3.0.0` - 主版本内兼容更新

### 最新版本 (使用 * 或无限制)
- `playwright = "*"` - 浏览器自动化,需要最新功能
- `uvloop = "*"` - 性能优化库,持续更新

## 版本升级建议

### 已完成的依赖升级
1. **FastAPI**: 0.111.0 → 0.115.12 ✅
   - 新增 Query/Header/Cookie 参数模型功能
   - 改进的类型提示和验证机制
   - 更好的 OpenAPI 文档生成和异步性能
   - 向后兼容,无破坏性变更
   - 增强的中间件支持和错误处理

2. **Pydantic**: 固定版本 → 版本范围 ✅
   -`pydantic==2.7.1` 更新为 `pydantic>=2.7.1,<3.0.0`
   - 确保与 FastAPI 0.115.12 的完美兼容性
   - 允许自动获取补丁版本更新和安全修复
   - 支持最新的数据验证特性

3. **开发工具链现代化**: ✅
   - Poetry 依赖管理替代传统 requirements.txt
   - Pyright 类型检查支持,提升开发体验
   - 模块化配置管理,支持 .env 文件

### 可选的次要依赖更新
- `charset-normalizer`: 3.4.1 → 3.4.2
- `click`: 8.1.8 → 8.2.1
- `frozenlist`: 1.6.0 → 1.6.2

### 升级注意事项
- 在测试环境中先验证兼容性
- 关注 FastAPI 版本更新的 breaking changes
- 定期检查安全漏洞更新

## 环境特定配置

### Docker 环境
- **基础镜像**: `python:3.10-slim-bookworm`
- **系统依赖**: 自动安装浏览器运行时依赖
- **Python版本**: 固定为 3.10 (容器内)

### 开发环境
- **推荐**: Python 3.11+ 
- **虚拟环境**: 强烈推荐使用 venv 或 conda
- **IDE支持**: 配置了 pyrightconfig.json (Python 3.13)

### 生产环境
- **推荐**: Python 3.10 或 3.11
- **稳定性**: 使用固定版本依赖
- **监控**: 定期检查依赖安全更新

## 故障排除

### 常见版本冲突
1. **Python 3.8 兼容性问题**
   - 升级到 Python 3.9+
   - 检查类型提示语法兼容性

2. **依赖版本冲突**
   - 使用虚拟环境隔离
   - 清理 pip 缓存: `pip cache purge`

3. **系统依赖缺失**
   - Linux: 安装 `xvfb` 用于虚拟显示
   - 运行 `playwright install-deps`

### 版本检查命令
```bash

# 检查 Python 版本

python --version



# 检查已安装包版本

pip list



# 检查过时的包

pip list --outdated



# 检查特定包信息

pip show fastapi

```

## 更新日志

### 2025-01-25
- **重要更新**: FastAPI 从 0.111.0 升级到 0.115.12
- **重要更新**: Pydantic 版本策略从固定版本改为版本范围 (>=2.7.1,<3.0.0)
- 更新 Python 版本要求说明 (推荐 3.9+,强烈建议 3.10+)
- 添加详细的依赖版本兼容性矩阵
- 完善 Docker 环境版本说明 (Python 3.10)
- 增加版本升级建议和故障排除指南
- 更新所有相关文档以反映新的依赖版本要求