M1版Mac安装TensorFlow 2.6.0出现legacy-install-failure报错
问题根因
报错发生在依赖自动拉取环节:TensorFlow 2.6.0 要求依赖 numpy<1.20 版本,这类旧版 numpy 的构建脚本存在类型传参问题,和当前环境的 22.1.2 版本 pip 不兼容——构建时旧脚本传入整数类型的配置值,新版 pip 构建后端要求对应字段必须为字符串,直接抛出TypeError: str expected, not int错误,最终触发安装失败。
可行解决方案
二选一即可:
方案1:降级pip适配旧版numpy构建逻辑(操作更简单)
- 降级pip到兼容旧numpy构建脚本的版本:
python -m pip install pip==21.2.4 - 执行原TensorFlow安装命令:
python -m pip install tensorflow-macos==2.6.0
方案2:预装numpy绕开源码构建(无需降级pip)
- 用conda安装符合TF2.6版本要求的预编译numpy,跳过pip源码构建流程:
conda install numpy=1.19.5 -y - 无依赖安装tensorflow-macos主包,避免pip自动拉取numpy触发构建报错:
python -m pip install tensorflow-macos==2.6.0 --no-deps - 批量安装TF2.6所需的其余依赖:
python -m pip install absl-py==0.15.0 astunparse==1.6.3 flatbuffers==1.12 gast==0.4.0 google-pasta==0.2.0 h5py==3.1.0 keras==2.6.0 keras-preprocessing==1.1.2 opt-einsum==3.3.0 protobuf==3.19.4 six==1.15.0 termcolor==1.1.0 typing-extensions==3.7.4.3 wheel==0.37.0 wrapt==1.12.1 clang==5.0 tensorboard==2.6.0 tensorflow-estimator==2.6.0 grpcio==1.42.0
安装验证
- 安装完成后执行以下命令校验:
python -c "import tensorflow as tf; print(tf.__version__)" - 终端输出
2.6.0即代表安装成功。
内容的提问来源于stack exchange,提问作者Arannya
相关产品推荐
相关产品推荐

