Mac M2设备上TensorFlow Transform安装失败问题咨询
问题原因分析
- 依赖版本冲突与编译适配问题
- TensorFlow Transform的依赖声明中包含旧版本numpy(如1.16.x系列),这类版本没有针对Apple Silicon(ARM64)的预编译wheel包,pip只能尝试从源码编译,但numpy 1.16.0本身不支持ARM架构的编译环境,最终导致编译失败。
- 你本地已安装的numpy 1.24.1版本远高于tft依赖要求的范围,pip为满足依赖约束会自动尝试降级numpy及其他关联依赖,进一步引发连锁兼容性问题。
- Apple Silicon支持现状
TensorFlow Transform官方未明确标注不支持Apple Silicon,但由于部分依赖包的旧版本缺乏ARM架构适配,导致在M系列Mac上直接通过pip安装会出现障碍,并非完全不支持。
可行解决办法
方法一:使用conda创建适配环境
- 安装针对ARM架构的Miniforge发行版,确保环境基于ARM64。
- 创建新环境并安装依赖:
选择numpy 1.21.x是因为它既满足tft的依赖范围,又有ARM架构的预编译包,可避免源码编译。conda create -n tft_env python=3.9 conda activate tft_env conda install numpy=1.21.* tensorflow=2.10.0 tensorflow-metadata=1.11.0 pip install tensorflow_transform
方法二:强制安装兼容版本依赖(谨慎使用)
如果conda方案不可行,可尝试指定兼容的依赖版本,跳过自动降级:OPENBLAS="$(brew --prefix openblas)" pip install tensorflow_transform numpy==1.21.6 --no-deps之后手动安装其他缺失的依赖包,确保版本与tft兼容。
方法三:使用Docker容器
基于支持ARM64的TensorFlow镜像创建容器,在容器内安装TensorFlow Transform,避开本地环境的架构适配问题:docker run -it --platform linux/arm64 tensorflow/tensorflow:2.10.0-arm64 bash pip install tensorflow_transform
内容的提问来源于stack exchange,提问作者mon
相关产品推荐
相关产品推荐

