Mac M1设备Miniforge3环境中同时安装Mediapipe与TensorFlow的解决方案咨询
解决M1 Mac上同时安装Mediapipe和TensorFlow的问题
我之前在M1 Mac上踩过完全一样的坑,折腾了好一阵子,总结出两个靠谱的解决方案,你可以根据自己的需求选:
方案一:用Rosetta2创建x86_64环境(最简单省心)
Miniforge3的arm64频道确实没有Python3.7的包——conda-forge对M1原生环境的Python支持是从3.8开始的。不过我们可以借助Rosetta2转译,创建一个x86架构的conda环境,这样就能顺利安装Python3.7和对应的Mediapipe、TensorFlow:
- 开启终端的Rosetta模式:
右键点击「终端」应用→选择「显示简介」→勾选「使用Rosetta打开」,然后重启终端。 - 创建x86架构的conda环境:
执行命令指定架构和Python版本:CONDA_SUBDIR=osx-64 conda create -n vision_x86 python=3.7 - 激活环境并安装依赖:
这个方法的好处是不用折腾编译,上手快;唯一的小缺点是x86环境依赖Rosetta转译,性能比原生arm64略低,但日常开发和使用基本感知不到差异。conda activate vision_x86 # 安装TensorFlow(x86版本,完美兼容Python3.7) pip install tensorflow # 现在安装Mediapipe就能找到匹配的版本了 pip install mediapipe
方案二:从源码编译arm64版本的Mediapipe(原生性能拉满)
如果你想坚持用原生arm64环境(也就是你现在装了TensorFlow的Python3.9环境),可以自己从源码编译支持M1的Mediapipe:
- 安装编译依赖:
在你现有的arm64 conda环境里安装编译工具和依赖:conda install -c conda-forge bazel numpy opencv - 克隆Mediapipe代码仓库:
git clone https://github.com/google/mediapipe.git cd mediapipe - 适配M1和Python3.9配置:
- 修改
WORKSPACE文件,确保Python配置指向你conda环境里的Python3.9路径 - 调整
mediapipe/python/BUILD中的编译参数,添加对macos_arm64的支持
- 修改
- 编译并生成wheel包:
# 编译pip包 bazel build --config=macos_arm64 mediapipe/python/pip_package:build_pip_package # 生成wheel文件到临时目录 bazel-bin/mediapipe/python/pip_package/build_pip_package /tmp/mediapipe_pkg - 安装编译好的Mediapipe:
这个方法能得到原生arm64的Mediapipe,性能是最好的,但编译过程可能会遇到一些小问题(比如依赖版本适配),需要耐心调试。pip install /tmp/mediapipe_pkg/mediapipe-*.whl
内容的提问来源于stack exchange,提问作者connor449
相关产品推荐
相关产品推荐

