feat: downgrade Python baseline to 3.13 for PaddleOCR compatibility
Tests / Test passed: 789

paddlepaddle has no Python 3.14 (cp314) wheel on PyPI, so host-agent
deployments on 3.14 can never install it, causing OCR to fail at
runtime with RuntimeError. Pin the workspace to Python 3.13 across
all pyproject.toml files, the Docker base image, and the Jenkins CI
image; regenerate uv.lock against 3.13.

Also fixes a pre-existing Python-2-style `except X, Y:` syntax error
(invalid in all Python 3.x) in runtime/task.py and
packages/cloud-platform/cloud/{sql_repository,internal_api/api}.py,
introduced in 22d37ca9 and unrelated to this change's scope, which
blocked the full test suite from collecting on any interpreter
version.

openspec change: downgrade-python-3-13-paddleocr
This commit is contained in:
2026-07-14 18:05:49 +08:00
parent ecb1dba9ff
commit 25ebc10a8a
16 changed files with 645 additions and 792 deletions
+9 -5
View File
@@ -102,7 +102,7 @@ export WDA_BUNDLE_ID="com.<your-name>.WebDriverAgentRunner"
### 4.1 Homebrew、Python 和 Node.js
本项目当前在 `pyproject.toml` 中要求 Python `>=3.14`。Appium 3.1 要求 Node.js
本项目当前在 `pyproject.toml` 中要求 Python `>=3.13,<3.14`。Appium 3.1 要求 Node.js
`^20.19.0 || ^22.12.0 || >=24.0.0`,并要求 npm `>=10`
已安装 Homebrew 时执行:
@@ -123,7 +123,7 @@ npm --version
在仓库根目录执行:
```bash
uv python install 3.14
uv python install 3.13
uv sync --locked --all-packages
uv run --package device-agent-runtime python --version
uv run --package device-cloud-platform python -c "import cloud"
@@ -153,9 +153,13 @@ uv pip install \
```
这种降级安装不包含 OCR。`find_text` 和基于 OCR 的 screen description 可能返回空
结果,但 WDA 基础控制不受影响。不要为了兼容 PaddleOCR 擅自降到 Python 3.13,
因为当前项目元数据明确要求 Python 3.14;如需降级,应先作为独立兼容性变更修改
和验证 `pyproject.toml`
结果,但 WDA 基础控制不受影响。
项目已固定使用 Python 3.13(见 `pyproject.toml``requires-python`),原因是
`paddlepaddle` 在 PyPI 上尚未发布 Python 3.14 (cp314) 的 wheel,3.14 环境下无法
安装 `paddlepaddle`,会导致 OCR 相关功能在运行时报 `RuntimeError`。注意
`paddlepaddle` 本身并未作为 `paddleocr` 的声明依赖被 `uv sync` 自动安装,需要
在 3.13 环境下手动执行 `uv pip install paddlepaddle` 才能让 OCR 引擎真正可用。
### 4.3 安装 Appium 和 XCUITest Driver