ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

MediaPipe aarch64 源码构建:从 pip 安装失败到 wheel 跑通

MediaPipe aarch64 源码构建:从 pip 安装失败到 wheel 跑通 MediaPipe aarch64 源码构建从 pip 安装失败到 wheel 跑通【免费下载链接】mediapipeCross-platform, customizable ML solutions for live and streaming media.项目地址: https://gitcode.com/GitHub_Trending/med/mediapipepip install mediapipe在 Jetson、树莓派等 ARM 设备上会直接报 no matching distribution这是最常见的安装卡点。下面完整走一遍 MediaPipe aarch64 源码构建装好 Bazel 与 OpenCV用 setup.py 编译出 wheel当场验证导入15 分钟可以完成。pip install mediapipe 报 no matching distribution 时在 Jetson 上执行pip install mediapipe终端直接返回ERROR: No matching distribution found for mediapipe。这不是网络问题重装也没用。原理一句话aarch64 为什么没有现成 wheelPyPI 官方只为 x86_64 发布预编译 wheelARM 用户找不到现成包pip 只能放弃。类比一下官方商店只进 x86 规格的货ARM 用户只能自己下场动手。具体机制是wheel 文件名里带平台标签如linux_x86_64pip 按当前系统架构精确匹配。官方不发布 aarch64 版本唯一可靠的路径就是用 Bazel 从源码构建产出一个你自己设备上能用的 wheel。构建前装好 Bazel 与 OpenCV先列清依赖每项都绕不开Python 3.9~3.12解释器与打包环境setup.py 的 classifier 声明支持这个区间BazeliskBazel ≥ 3.4MediaPipe 的构建系统setup.py 会硬性检查版本OpenCV图像处理依赖用系统包或编译时加--link-opencv从源码构建protobuf-compiler.proto 文件生成 C 代码用python3-dev / python3-venv编译头文件与虚拟环境支持环境隔离建议用虚拟环境setup.py 构建时会改写仓库里的mediapipe/__init__.py和third_party/BUILD会生成.backup备份文件隔离环境便于恢复和排查。创建并激活隔离环境python3 -m venv mp_env source mp_env/bin/activate安装三个基础系统依赖Debian/Ubuntusudo apt install -y python3-dev python3-venv protobuf-compilerBazelisk 的安装步骤以仓库内的安装指南 docs/getting_started/install.md 为准装好后验证bazel --version预期输出bazel 6.x之类、版本号不低于 3.4.0。为什么 Bazel 是硬前提因为 MediaPipe 的 Python 包本质是「Bazel 构建的 C 产物 Python 封装」setup.py 只是调用 bazel 的壳没有 Bazel 根本起不了构建。从源码到 wheel 的完整四步拉取源码浅克隆节省时间与磁盘仓库很大git clone --depth 1 https://gitcode.com/GitHub_Trending/med/mediapipe.git cd mediapipe预期目录下能看到setup.py、WORKSPACE、mediapipe/三个顶层条目。配置依赖安装 MediaPipe 构建所需的 Python 依赖pip3 install -r requirements.txt预期numpy、opencv-contrib-python、flatbuffers、matplotlib 等 7 个包装完无报错。编译打包触发 Bazel 完整构建并产出 wheel这步最耗时python3 setup.py bdist_wheel看到满屏 INFO 拉取依赖属于正常现象耐心等。这步比较耗时可以先去倒杯水。预期结束后dist/目录下生成mediapipe-*.whl。安装验证安装刚构建的 wheelpip install dist/mediapipe-*.whl在同环境验证包可正常导入import mediapipe as mp mp_face_mesh mp.solutions.face_mesh print(MediaPipe OK)预期打印MediaPipe OK无 ImportError。为什么本地生成的 wheel 能直接 pip 安装因为它内含按你当前架构aarch64编译出的libmediapipe.so平台标签天然匹配不存在 PyPI 上的版本错配。踩坑速查三个高频报错⚠️could not find bazel executable→ Bazel 未安装或不在 PATH 中 → 先装 Bazelisk 并用bazel --version确认版本 ≥ 3.4.0setup.py 里有硬性检查。⚠️ 导入时提示缺少libopencv_*.so或版本冲突 → 系统预装 OpenCV 与包要求不兼容 → 改用python3 setup.py bdist_wheel --link-opencv重新构建让 Bazel 从源码编译静态 OpenCV。⚠️ 导入报ModuleNotFoundError: No module named cv2→ wheel 的运行时依赖没装齐ARM 上 opencv-contrib-python 可能没有预编译版→ 先在目标环境执行pip install -r requirements.txt再重装 wheel。参考资源Python 包源码构建指南Bazel 与 OpenCV 安装指南OpenCV 源码编译脚本Python 依赖清单Solutions 文档索引【免费下载链接】mediapipeCross-platform, customizable ML solutions for live and streaming media.项目地址: https://gitcode.com/GitHub_Trending/med/mediapipe创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表