这是 cefpython 123.0 的自构建工作区(基于 CEF
123.0.6312.124)。 支持 Windows x64 和 macOS ARM64 平台。 上游项目的说明已移除,本 README 只保留你这套构建流程需要的内容。
CEF 二进制包下载(解压到 build/ 目录):
- v66.0:
https://cef-builds.spotifycdn.com/cef_binary_3.3359.1774.gd49d25f_windows64.tar.bz2 - v123.0:
https://cef-builds.spotifycdn.com/cef_binary_123.0.13+gfc703fb+chromium-123.0.6312.124_windows64.tar.bz2
| 项 | 路径 |
|---|---|
| cefpython 源码根 | 本目录(Claw/cefpython) |
| CEF 二进制包解压根 | build/cef_binary_123.0.13+gfc703fb+chromium-123.0.6312.124_windows64(下文 %BASE%) |
| Python 虚拟环境 | ../venv/Scripts/python.exe(3.12.10 + Cython 3.2.8) |
| 编译器 | Visual Studio 2022(vcvarsall.bat x64) |
| CMake / Ninja | D:\Android\SDK\cmake\4.1.2\bin 须在 PATH 最前 |
| 项 | 路径 |
|---|---|
| cefpython 源码根 | 本目录 |
| CEF 二进制包解压根 | build/cef_binary_123.0.13+gfc703fb+chromium-123.0.6312.124_macosarm64 |
| Python 虚拟环境 | venv/bin/python3(3.12 + Cython 3.2.9) |
| 编译器 | Apple Clang(Xcode Command Line Tools) |
| CMake | 系统 cmake 或 /Users/silly/applications/CMake.app/Contents/bin/cmake |
build.py / make_installer.py(系统 Python 缺 Cython)。
123.0(不是完整的 123.0.13+...)。
| 脚本 | 作用 | 用法 |
|---|---|---|
build_cefpython.bat |
一键串联 步骤 C→G:拉 VC 环境 → cmake /MD 编 libcef_dll_wrapper → 复制为 _MD.lib → build.py 123.0 → make_bin_flat.py → make_installer.py --wheel → 归档 wheel 到 build/wheelhouse/ |
在任意目录双击 / 命令行运行(基于自身目录 %~dp0 推导 Claw/venv/tools 路径,不依赖外部 CLAW 变量);日志写到 build_cefpython.log |
make_bin_flat.py |
对应构建文档步骤 F:把 CEF 运行时 dll + icudtl.dat/*.pak 扁平复制到 %BASE%/bin/ 根、locales/ 放 bin/locales/(坑3/坑4)。带文件锁降级容错 |
python make_bin_flat.py(内部 BASE 已写死为 build/cef_binary_123...,换 CEF 小版本需改此路径) |
其余辅助脚本(
_rebuild_wrapper_MD.bat/_build_wrapper.bat等、冒烟测试_cef_smoke.py)仍在Claw\根目录,详见../cefpython_win64_build.md第 11 节。
python -m venv ./venv
source ./venv/bin/activate # Linux/macOS
# 或 .\venv\Scripts\activate # Windows
pip install wheel setuptools cython:: 在任意目录运行均可(脚本自己推导路径)
.\build.bat
:: 测试安装
pip install --force-reinstall build/wheelhouse/cefpython3-123.0-cp312-none-win_amd64.whl产物:build/wheelhouse/cefpython3-123.0-cp312-none-win_amd64.whl
# 确保已激活虚拟环境
source venv/bin/activate
# 安装依赖
brew install ninja # 可选,有 ninja 会更快
# 一键构建(需要约 10-20 分钟)
./build.sh产物:build/wheelhouse/cefpython3-123.0-cp312-none-macosx_11_0_arm64.whl
# 测试安装
pip install --force-reinstall build/wheelhouse/cefpython3-123.0-cp312-none-macosx_11_0_arm64.whl
python test_cef_smoke.pybuild.sh 执行以下步骤:
- 清理旧的构建文件
- 使用 CMake 编译
libcef_dll_wrapper(arm64 架构) - 复制编译产物到
build/cef_mac64/(符号链接到实际 CEF 目录) - 运行
build.py 123.0编译 cefpython 模块 - 生成 wheel 安装包
- 归档到
build/wheelhouse/
- 必须使用 ARM64 架构的 CEF 二进制包(
macosarm64版本) - Python 必须是 arm64 版本(非 universal2)
- 首次构建会失败一次(生成 Cython 头文件),脚本会自动重试
步骤 A→H:
A 解压 CEF 包 →
B 改 libcef_dll/CMakeLists.txt 排除 TEST 源 →
C 编 wrapper(/MD) →
D 复制 _MD.lib →
E build.py 123.0 →
F make_bin_flat.py 造扁平 bin/(一键脚本已自动包含此步)
G make_installer.py --wheel →
H 安装 + 冒烟。
- obj 路径超 250 字符 (C1083):CEF test 源太深 → 注释
add_library里 4 个*_TEST_SRCS。 - 缺
libcef_dll_wrapper_MD:wrapper 须/MD编,产物复制为libcef_dll_wrapper_MD.lib。 No paths found: bin/*:官方 CEF 包无bin/→ 用make_bin_flat.py造。- ICU / locale 报错:
icudtl.dat/*.pak/locales/必须与subprocess.exe同级(bin/根),不要套bin/Resources/。
.\venv\Scripts\python.exe -m pip install --force-reinstall --no-deps build\wheelhouse\cefpython3-123.0-cp312-none-win_amd64.whl
.\venv\Scripts\python.exe .\test_cef_smoke.py标准 import 写法:from cefpython3 import cefpython as cef。退出码 0、无 ICU/locale 报错即 ✅。
- wheel:
build/wheelhouse/cefpython3-123.0-cp312-none-win_amd64.whl - pyd:
build/cefpython_binary_123.0_windows64/cefpython_py312.pyd
- wheel:
build/wheelhouse/cefpython3-123.0-cp312-none-macosx_11_0_arm64.whl - so:
build/cefpython_binary_123.0_mac64/cefpython_py312.so - subprocess:
build/cefpython_binary_123.0_mac64/subprocess